Access本身是不支持执行多条SQL语句的,因此,要想在Access中批量运行SQL语句是不可能的。但是我们借助VBA的功能来解决该问题。
解决问题的根本在于:将SQL多条批量语句存放到某个*.SQL文件中,然后,通过VBA来调用该文件运行,这样就能解决问题了。以下的SQL文件为E:\Mysql.sql。
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim FileObj
Dim TextObj
Dim TmpPath As String
Dim strSQL As String
Dim row As Integer
row = 1
TmpPath = "E:\Mysql.sql"
Set FileObj = CreateObject("Scripting.FileSystemObject")
Set TextObj = FileObj.OpenTextFile(TmpPath, ForReading, True)
DoCmd.SetWarnings False '关闭确认提示
Do While Not TextObj.AtEndOfLine
strSQL = TextObj.ReadLine '读sql文件内容
DoCmd.RunSQL strSQL '执行 SQL 查询
row = row + 1
Loop
DoCmd.SetWarnings True
MsgBox row
TextObj.Close