如何在Access VBA中分离SQL语句
如何构造SQL VBA块,以便在不必为每个单独的SQL语句打开数据库的情况下执行多个SQL语句 例如,我尝试了以下两个代码块,但得到一个错误,指出FROM子句有问题如何在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
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