我有一個Excel工作簿,它有一些查詢本地訪問數據庫的adodb代碼。我想爲SQLite做同樣的事情,因爲我相信這會提供更好的性能。我怎麼做?我可以使用adodb或odbc連接到SQLite文件嗎?如何從VBA訪問SQLite?
我需要的東西很簡單,我可以部署,以便如果我可以儘量減少不必要的配置和安裝也許peoople將使用excel將不具有PC上的管理員權限,因此他們無法安裝軟件。
我有一個Excel工作簿,它有一些查詢本地訪問數據庫的adodb代碼。我想爲SQLite做同樣的事情,因爲我相信這會提供更好的性能。我怎麼做?我可以使用adodb或odbc連接到SQLite文件嗎?如何從VBA訪問SQLite?
我需要的東西很簡單,我可以部署,以便如果我可以儘量減少不必要的配置和安裝也許peoople將使用excel將不具有PC上的管理員權限,因此他們無法安裝軟件。
有一些DLL可用於使用adodb從Visual Basic訪問SQLITE數據庫。我認爲here是您正在尋找的信息。我從來沒有嘗試過,但鏈接可以爲你有用。
祝你好運。
我用過Datenhaus'dhSQLite,效果很好。
面對同樣的問題,我創建了一個輕量級庫,可以直接從Excel VBA訪問SQLite3。最終的結果是一個更簡單的解決方案,沒有介入的ODBC或OleDb/ADO層,性能反映了SQLite數據庫的性能,而不是不透明的包裝。這也很好,因爲您不需要在註冊表中註冊COM組件,只需將兩個.dll文件複製到工作簿中,並將.bas模塊添加到您的項目中。
此方法的一個缺點是API不是標準的DAO或ADO接口,所以您可能需要製作一些包裝或轉換一些代碼才能使其工作。這也意味着您需要熟悉SQLite API才能使用它,但SQLite文檔非常清晰。
我已經把這個項目的早期版本在CodePlex上:SQLite for Excel提供了一個高性能的路徑SQLite3的API函數,保留的SQLite3庫調用的語義,並允許訪問分佈式SQLite3.dll無需重新編譯。
任何反饋將不勝感激。
更新:SQLite for Excel項目現在生活在GitHub。
如何從here (original article in chinese)訪問來自VBA宏源碼:
軟件環境:
1)Win7的(32位)2)Excel2007中(與VBA功能)
步驟:
1)首先, http://www.zsplat.pwp.blueyonder.co.uk/programming/sqlite-3.5.7-odbc-0.65.zip 下載並安裝SQLite ODBC驅動程序。
注意:如果您使用Win7,則需要管理員權限,否則安裝將失敗 。最簡單的步驟是使用管理員登錄名 ,然後安裝SQLite ODBC驅動程序。 2)打開Excel VBA代碼編輯器窗口,菜單欄[工具] - > [參考],添加Microsoft ActiveX Data Objects 2.7,目的是使用VBA和數據庫連接的 。
3)使用下面的代碼來連接SQLite數據庫:
Dim conn As New ADODB.Connection
Dim dbName As String
'Define the connection string
dbName = "Driver = {SQLite3 ODBC Driver}; Database = D: \ yourdbname.db"
'Open the database
ff.Open dbName
ff.Execute "create table a (a, b, c);"
'Other operations on and VBA to connect to other DB like Access the same.
'Close connection
ff.Close