Sql 根据条件将表复制到Excel时出现问题

Sql 根据条件将表复制到Excel时出现问题,sql,excel,ms-access,vba,Sql,Excel,Ms Access,Vba,我收到一个错误,显示运行时错误“424”:尝试运行时需要对象: Function CreateDailyReadOnlyCVG() Dim sql, strStatusReport, strDailyCVG, strOutputFileName As String strOutputFileName = "mit-msp01\cs\CUS Supply Chain\All Division Reporting\Field Retrievals\Status Reports\CVG" &

我收到一个错误,显示运行时错误“424”:尝试运行时需要对象:

Function CreateDailyReadOnlyCVG()

Dim sql, strStatusReport, strDailyCVG, strOutputFileName As String

strOutputFileName = "mit-msp01\cs\CUS Supply Chain\All Division Reporting\Field Retrievals\Status Reports\CVG" & _
Format(Date, "yyyyMMdd") & ".xlsx"

    If tRetrieval.[Retrieval_Status] = "A" And tRetrieval.[BU] = "CVG" Then _
      sql = "INSERT * FROM tRetrieval_Status_Report_CVG INSERT INTO tDaily_Report_CVG"
      DoCmd.RunSQL sql
      DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Daily Report", " & strOutputFileName & ", True
      SetAttr " & strOutputFileName & ", vbReadOnly

End Function
它编译得很好,但是我运行它并得到了错误。而且,我觉得这无论如何都不会运行

找到了答案:

Sub CreateDailyReadOnlyCVG()

Dim sql, strOutputFileName As String
Dim intCounter As Integer

strOutputFileName = "J:\CUS Supply Chain\All Division Reporting\Field Retrievals\Status Reports\CVG\Retrieval Status Report CVG" & _
Format(Date, "yyyyMMdd") & ".xls"


sql = "INSERT INTO tDaily_Report_CVG SELECT * FROM tRetrieval_Status_Report_CVG;"

intCounter = DCount("[Retrieval_ID]", "tRetrieval", "[BU] = 'CVG' AND [Retrieval_Status] = 'A'")

    If intCounter > 0 Then
        DoCmd.RunSQL sql
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tDaily_Report_CVG", _
        " & strOutputFileName & ", True
        SetAttr " & strOutputFileName & ", vbReadOnly
    End If

End Sub

代码中的哪一行导致了错误?您的SQL语句是(格式错误的)插入语句。它应该是一个SELECT.1
Dim sql作为字符串,strOutputFileName作为字符串
。2是否确实只希望If子句中包含
DoCmd.RunSQL
?如果是,请更正缩进。如果不是,则删除uuThen之后的,并在块的末尾添加一个
End If
。三。您正在混合xls和xlsx。更好:使用
strOutputFileName
。谢谢。它是如何复制进来的,我想我把所有的.xlsx都改了。我想把它写在if条款里,是的。它取决于if,并且仅当满足条件时才会运行。