【Windows、Excel、SQLite3】Excel 32bit VBAからのSQLlite3への接続
WindowsでExcelからSQLite3へ接続する場合、ADO→ODBC経由で接続することになります。本当は使わない方法もあるようですが、他のデータベースと同様な方法で接続したい場合は、ADO→ODBC経由接続が良いと思います。
そのためには、SQLite ODBC Driverをインストールする必要があるのですが、
1.Excelが32bitの場合は、32bitのODBCドライバー
2.Excelが64bitの場合は、64bitのODBCドライバー
をインストールしなければなりません。
ドライバーは以下のサイトからダウンロードできます。
sqliteodbc.exe・・・・・・・・・32bitドライバーです
sqliteodbc_w64.exe・・・・・・・64bitドライバーです
尚、一応参考としてExcel VBAでのADOを使用したコードを示します。
:
:
Dim mConnection As ADODB.Connection '= ADODBコネクションオブジェクト
Dim cnstr As String
'= Connection Object 生成 ==================
If (mConnection Is Nothing) Then
Set mConnection = New ADODB.Connection
End If
'= ConnectionがOpenしていなければOpenする ===
If (mConnection.State <> adStateOpen) Then
Select Case PnDBSystemName
Case "MSSQL"
cnstr = "Provider=SQLOLEDB.1;Data Source=" & PnHostName & ";Initial Catalog=" & PnDBName
Case "ORACLE"
cnstr = "Provider=OraOLEDB.Oracle; Data Source=" & PnHostName
Case "ACCESS"
cnstr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & PnHostName
Case "SQLite3"
cnstr = "DRIVER=SQLite3 ODBC Driver; Database=" & PnHostName
End Select
With mConnection
'= Connection Object プロパティ設定 =====
If (PnCursorLocation = 2) Then
.CursorLocation = adUseServer
Else
.CursorLocation = adUseClient
End If
.Mode = adModeReadWrite
'= Connection Open ===================
.Open cnstr, PnUserName, PnPassWord
'= トランザクション Start ===================
.BeginTrans
End With
:
:
SQLite3の接続部分だけ説明しますと、
PnHostNameは、DBのファイル名(パスを含む)を示します。例えば、
「PnHostName = "C:\sqlite3\Sample.db"」
となります。
以上です。ではまた。
この記事が気に入ったらサポートをしてみませんか?