将截断查询结果插入表中

问题描述

| 我有一个查询驻留在访问文件(.mdb)中,我想在VBA中调用此查询,并将结果存储到现有表中。在插入结果之前,应删除表的先前内容。 任何想法?在我现有的代码中,查询名称\“ genInboundCdr \”是通过DoCmd.TransferSpreadsheet执行的,结果存储在excel文件中。
Private Sub BtnExecuteQuery_Click()
    If IsNull(txtOutputPath.value) Then
        MsgBox \"Please enter a valid output file location.\"
    Else
        If ObjectExists(\"Query\",\"genInboundCdr\") Then
            strPathToSave = txtOutputPath.value
            MsgBox \"About to extract inbound cdr...\" & vbCrLf & _
                    \"Please notice that the query may take longer time \" & _
                    \"( > 20 minutes ) if the linked tables contains a lot \" & _
                    \"of records.\"
            txtStatus.value = txtStatus.value & _
                    \"About to extract inbound cdr...\" & vbCrLf & _
                    \"Please notice that the query may take longer time \" & _
                    \"( > 20 minutes ) if the linked tables contains a lot \" & _
                    \"of records.\" & vbCrLf
            DoCmd.TransferSpreadsheet acExport,_
                                        acSpreadsheetTypeExcel9,_
                                        \"genInboundCdr\",_
                                        strPathToSave,_
                                        True
            MsgBox (\"Inbound Cdr generated.\")
            txtStatus.value = txtStatus.value & \"Inbound Cdr generated.\" & vbCrLf
        Else
            MsgBox (\"Query does not exist! Please review your steps.\")
        End If

    End If
End Sub
    

解决方法

最简单的方法是在目标表上执行删除查询,然后使用追加查询。 删除查询的SQL如下所示:
DELETE *
FROM foo2;
附加查询的SQL如下所示:
INSERT INTO foo_dest ( f0,f1,f2,f3 )
SELECT foo_src.f0,foo_src.f1,foo_src.f2,foo_src.f3
FROM foo_src;
SELECT部分​​将是您的源查询(genInboundCdr)。 您可以像这样在VBA中执行以下任一查询:
DoCmd.RunSQL = \"insert into ...\"
要么
Currentdb.execute = \"insert into ...\"
或者如果您更喜欢使用存储的查询
DoCmd.OpenQuery \"genInboundCdr\"
(可能还有另一种运行genInboundCdr的方法,但我现在不记得了)     ,我最终这样做: 1)查询并将结果存储到excel文件中。 2)使用transferspreadsheet导入Excel文件。
DoCmd.TransferSpreadsheet acExport,_
                            acSpreadsheetTypeExcel9,_
                            \"genInboundCdr\",_
                            strPathToSave,_
                            True
DoCmd.TransferSpreadsheet acImport,_
                            \"temp_result\",_
                            True
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...