如何在Access VBA中分离SQL语句

如何在Access VBA中分离SQL语句,sql,ms-access,vba,Sql,Ms Access,Vba,如何构造SQL VBA块,以便在不必为每个单独的SQL语句打开数据库的情况下执行多个SQL语句 例如,我尝试了以下两个代码块,但得到一个错误,指出FROM子句有问题 Dim dbs As Database Set dbs = OpenDatabase("path\database.mdb") dbs.Execute " INSERT INTO table1 (col1,col2,col3) " _ & "SELECT F1,F2,Fo

如何构造SQL VBA块,以便在不必为每个单独的SQL语句打开数据库的情况下执行多个SQL语句

例如,我尝试了以下两个代码块,但得到一个错误,指出FROM子句有问题

   Dim dbs As Database

   Set dbs = OpenDatabase("path\database.mdb")

   dbs.Execute " INSERT INTO table1 (col1,col2,col3) " _
                & "SELECT F1,F2,Format$(Now(),'Short Date') " _
                & "FROM table2" _
                & "DROP table2;"
    dbs.Close


如果您的表链接到access数据库,那么您可以使用如下命令:

DoCmd.RunSQL "INSERT INTO table1 (col1, col2, col3) " & _
             "SELECT F1, F2, Format(Date(), 'mm/dd/yyyy') " & _
             "FROM table2"

DoCmd.DeleteObject acTable, "table2"

所需代码更少,无需打开和关闭连接。

为什么不使用第二次调用
。执行

Dim dbs As Database

Set dbs = OpenDatabase("path\database.mdb")

dbs.Execute "INSERT INTO table1 (col1,col2,col3) " _
            & "SELECT F1,F2,Format$(Now(),'Short Date') " _
            & "FROM table2"

dbs.Execute "DROP TABLE table2"

dbs.Close
Dim dbs As Database

Set dbs = OpenDatabase("path\database.mdb")

dbs.Execute "INSERT INTO table1 (col1,col2,col3) " _
            & "SELECT F1,F2,Format$(Now(),'Short Date') " _
            & "FROM table2"

dbs.Execute "DROP TABLE table2"

dbs.Close