Access交流中心

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

[5分]报表输出到数据库写的 一段代码,请老师给指导指导,总是出错

文强  发表于:2014-12-17 19:37:03  
复制

代码如下

Private Sub cmdOK_Click()
 On Error GoTo out_Excel_Err


    '方法二,将Access表中的数据写入到Excel报表相对应的单元格
    '需要引用DAO 3.6 和Microsoft EXCEL 9.0 或Microsoft EXCEL 11
    Dim ExcelApp As Excel.Application


    Dim Book As Excel.Workbook
    Dim ws As Worksheet
    DoCmd.SetWarnings False
    Dim xlsPath As String
    xlsPath = "F:\proessMIS\Daily Report"
    Set ExcelApp = New Excel.Application
    '打开指定的Sheet表
    Set ws = ExcelApp.Workbooks.Open(xlsPath).Worksheets("Working Book工作表")
    '生成daily actual表 daily actual表
    DoCmd.OpenQuery "qryday actual", acViewNormal
    Dim rst1 As DAO.Recordset
    Dim rst2 As DAO.Recordset
    '检测Excel文件是否存在,如果不存在则提醒
    If Dir(xlsPath) = "" Then
        MsgBox "Daily Report.xls文件不存在,请将Excel文件与mdb文件放在同一目录下", vbCritical, "提示"
        End
    End If


    Set rst1 = CurrentDb.OpenRecordset("day actual", dbOpenDynaset)
    rst1.MoveFirst
    Do Until rst1.EOF
'        If rst1("销售分公司") = "柏林分公司" Then
'            'ws.cells(4,3)是指"报表2"工作表的第4行与第3列相交的单元格
'            ws.Cells(4, 3) = rst1("累计销售")
'        End If
'        If rst1("销售分公司") = "北京分公司" Then
'            ws.Cells(5, 3) = rst1("累计销售")
'        End If
'        If rst1("销售分公司") = "伦敦分公司" Then
'            ws.Cells(6, 3) = rst1("累计销售")
'        End If
'        If rst1("销售分公司") = "纽约分公司" Then
'            ws.Cells(7, 3) = rst1("累计销售")
'        End If
'        If rst1("销售分公司") = "汉城分公司" Then
'            ws.Cells(8, 3) = rst1("累计销售")
'        End If
ws.Cells(8, 5) = rst1("Tonnes Milled")
ws.Cells(9, 5) = rst1("TPH")
ws.Cells(10, 5) = rst1("CV6# Grade")
ws.Cells(11, 5) = rst1("COF Feed S")
ws.Cells(12, 5) = rst1("Solfide Sulfur %")
ws.Cells(13, 5) = rst1("Total Tailing Grade")
ws.Cells(15, 5) = rst1("Mill Run Time")
ws.Cells(16, 5) = rst1("CV6# Recovery")
ws.Cells(17, 5) = rst1("CV6# Gold Produced")






        rst1.MoveNext
    Loop
    ExcelApp.Visible = True    '显示EXCEL让操作员可以看得见,不然就只是在进程中而不可见
    Set ExcelApp = Nothing
    Set Book = Nothing






    
     Set rst2 = CurrentDb.OpenRecordset("month actual", dbOpenDynaset)
    rst2.MoveFirst
    Do Until rst2.EOF
    ws.Cells(8, 7) = rst2("Tonnes Milled")
ws.Cells(9, 7) = rst2("TPH")
ws.Cells(10, 7) = rst2("CV6# Grade")
ws.Cells(11, 7) = rst2("COF Feed S")
ws.Cells(12, 7) = rst2("Solfide Sulfur %")
ws.Cells(13, 7) = rst2("Total Tailing Grade")
ws.Cells(15, 7) = rst2("Mill Run Time")
ws.Cells(16, 7) = rst2("CV6# Recovery")
ws.Cells(17, 7) = rst2("CV6# Gold Produced")
   rst2.MoveNext
    Loop
    ExcelApp.Visible = True    '显示EXCEL让操作员可以看得见,不然就只是在进程中而不可见
    Set ExcelApp = Nothing
    Set Book = Nothing
out_Excel_Exit:
    Exit Sub


out_Excel_Err:
    MsgBox Error$
    Resume out_Excel_Exit


End Sub


总是出错

我已经把文件放在一个目录里面了啊

 

Top
YANGQINGHUA 发表于:2014-12-17 21:19:50
xlsPath = "F:\proessMIS\Daily Report.xls"

cspa 发表于:2014-12-17 22:44:35
你那Daily Report文件的扩展名不是.xls吧?好像是2007以上版本的



smileyoufu 发表于:2014-12-20 22:31:19

  xlsPath = "F:\proessMIS\Daily Report" 修改如下:


xlsPath =CurrentProject.Path & "\Daily Report.xls"



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