Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

数据导出到EXcel问题?为什么子窗体里的内容无法导出?

yezhigen  发表于:2009-12-17 11:14:44  
复制


请高手帮帮忙看下代码哪里出错?

 

Top
yezhigen 发表于:2009-12-18 15:37:30

Private Sub 导出_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim rs As New ADODB.Recordset
Dim sql As String
Dim i As Long
Dim fname As String
Dim shtname As String
On Error GoTo 导出_Err
fname = GetFolder                                                       '打开文件夹并选取文件
shtname = InputBox("请选择表:", "表选择窗体", "Sheet1")                 '指定导出到的工作表(Sheet)名称
sql = "select * from 订单明细 where 生产号=" & Me.生产号
rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic  '打开记录集
Set xlApp = CreateObject("Excel.Application")                           '创建一个Excel实例
xlApp.Application.Visible = True                                        '使Excel可见
Set xlBook = xlApp.Workbooks.Open(fname)                                '打开Excel工作簿
'导出主表
xlBook.Application.Sheets(shtname).Select                               '按指定名称选择工作表
xlBook.Application.Range("A1").Value = "生产号"
xlBook.Application.Range("A2").Value = "客户"
xlBook.Application.Range("C1").Value = "车间"
xlBook.Application.Range("C2").Value = "下单日期"
xlBook.Application.Range("B1").Value = Me.生产号
xlBook.Application.Range("B2").Value = Me.客户
xlBook.Application.Range("D1").Value = Me.车间
xlBook.Application.Range("D2").Value = Me.下单日期
'导出子表
xlBook.Application.Cells(4, 1).Value = "序号"
xlBook.Application.Cells(4, 2).Value = "生产号"
xlBook.Application.Cells(4, 3).Value = "客户订单号"
xlBook.Application.Cells(4, 4).Value = "型号规格"
xlBook.Application.Cells(4, 5).Value = "产品名称"
xlBook.Application.Cells(4, 6).Value = "材质"
xlBook.Application.Cells(4, 7).Value = "数量"
xlBook.Application.Cells(4, 8).Value = "交货日期"


For i = 1 To rs.RecordCount
    xlBook.Application.Cells(i + 4, 1).Value = rs("序号")
    xlBook.Application.Cells(i + 4, 2).Value = rs("生产号")
    xlBook.Application.Cells(i + 4, 3).Value = rs("客户订单号")
    xlBook.Application.Cells(i + 4, 4).Value = rs("型号规格")
    xlBook.Application.Cells(i + 4, 5).Value = rs("产品名称")
    xlBook.Application.Cells(i + 4, 6).Value = rs("材质")
    xlBook.Application.Cells(i + 4, 7).Value = rs("数量")
    xlBook.Application.Cells(i + 4, 8).Value = rs("交货日期")
    rs.MoveNext
Next

xlApp.Quit
rs.Close
Set xlApp = Nothing
Set xlBook = Nothing

导出_Exit:
    Exit Sub
导出_Err:
    MsgBox "数据错误,请检查!"
    Resume 导出_Exit
End Sub

 

 



yezhigen 发表于:2009-12-18 15:38:08

Public Function GetFolder() As String
'文件及文件夹路径函数
    Dim dlgOpen As FileDialog
    Dim i As Long, j As Long
    Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
    With dlgOpen
        .AllowMultiSelect = True
        .Show
    End With
    i = dlgOpen.SelectedItems.Count
    If i > 0 Then
        GetFolder = ""
        For j = 2 To i
            GetFolder = GetFolder & dlgOpen.SelectedItems(j) & ";"
        Next
        j = 1
        GetFolder = GetFolder & dlgOpen.SelectedItems(j)
    Else
        GetFolder = CurDir() & "\"
    End If
    Set dlgOpen = Nothing
End Function
这是模块代码!!

yezhigen 发表于:2009-12-18 15:39:48
请教高手看看是哪里出错了?为什么引用代码自己新建就不行了,只能导主表而子窗体不能导出?

yezhigen 发表于:2009-12-19 09:48:45

哎,经过几天来的反复试验,问题已发现,原来只有主表中主键设为自动编号才能导出!!!!

现在想再请教,难道一定要主键设为自动编号吗?如何才能设为文本啊????!!!



总记录:4篇  页次:1/1 9 1 :