VBA 連接sqlite3
Step 1 官網下載sqlite3.dll與宏文件放到同一個目錄。
Step 2 新建一個xlsm的宏文件,通過API的方式調用dll 文件。
' 需要先聲明API函數
Private Declare Function sqlite3_open Lib "sqlite3.dll" (ByVal filename As String, ByRef ppDb As LongPtr) As Long
Private Declare Function sqlite3_exec Lib "sqlite3.dll" (ByVal pDb As LongPtr, ByVal sql As String, ByVal callback As LongPtr, ByVal callback_arg As LongPtr, ByRef errMsg As LongPtr) As Long
Private Declare Function sqlite3_close Lib "sqlite3.dll" (ByVal pDb As LongPtr) As Long
Private Declare Function sqlite3_errmsg Lib "sqlite3.dll" (ByVal pDb As LongPtr) As LongPtr
Private Declare Function lstrcpyA Lib "kernel32" (ByVal lpString1 As String, ByVal lpString2 As LongPtr) As Long
Sub TestSQLite()
Dim db As LongPtr
Dim rc As Long
Dim errMsg As LongPtr
Dim result As String * 255
On Error Resume Next
' 打開數據庫 (會在當前目錄創建test.db)
rc = sqlite3_open("test.db", db)
If rc <> 0 Then
lstrcpyA result, sqlite3_errmsg(db)
MsgBox "無法打開數據庫: " & result
Exit Sub
End If
' 執行SQL語句
rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT);", 0, 0, errMsg)
If rc <> 0 Then
lstrcpyA result, errMsg
MsgBox "SQL錯誤: " & result
Else
MsgBox "表創建成功!"
End If
' 關閉數據庫
sqlite3_close db
End Sub

浙公網安備 33010602011771號