前提・実現したいこと
前提:
Excelで簡単にSQLiteを使用できるということで、これらのリンクを参考にしました。
ExcelからODBCなしでSQLiteを操作する(設定編)
ExcelからSQLite3を操作する方法(1.使用準備)
ExcelからSQLiteを使う方法
Excel VBAからSQLite3のデータベースを触ってみたところ、それなりにハマったのでメモ。
SQLite for Excel
SQLite For Excel Version 1.0にあるSQLiteForExcel_64.xlsmを起動し、AllTestsプロシージャを実行します。
特に何も設定せずとも動くものと理解しています。
VBA
1 2'\Sqlite3Demo.bas 3Option Explicit 4 5Dim TestFile As String 6 7Public Sub AllTests() 8 ' Check that this location can be written to 9 ' Note that this file will be deleted after the tests complete! 10 TestFile = Environ("TEMP") & "\TestSqlite3ForExcel.db3" 11 12 Dim InitReturn As Long 13 #If Win64 Then 14 ' I put the 64-bit version of SQLite.dll under a subdirectory called x64 15 InitReturn = SQLite3Initialize(ThisWorkbook.Path + "\x64") 16 #Else 17 InitReturn = SQLite3Initialize ' Default path is ThisWorkbook.Path but can specify other path where the .dlls reside. 18 #End If 19 If InitReturn <> SQLITE_INIT_OK Then 20 Debug.Print "Error Initializing SQLite. Error: " & Err.LastDllError 21 Exit Sub 22 End If 23 24 TestVersion 25 TestOpenClose 26 TestOpenCloseV2 27 TestError 28 TestInsert 29 TestSelect 30 TestBinding 31 TestDates 32 TestStrings 33 TestBackup ------------------ここで落ちます。--------------------- 34 TestBlob 35 TestWriteReadOnly 36 SQLite3Free ' Quite optional 37 38 Debug.Print "----- All Tests Complete -----" 39End Sub
再現方法
「SQLite for Excel」 Excel VBAからSQLiteデータベースを使用する SQLポケリ [SQLポケリ]を参考にします。
①Excel2016 64bitをインストールします。
②SQLite For Excel Version 1.0をダウンロード、任意のフォルダに展開。
③SQLiteForExcel-1.0\DistributionSQLiteForExcel_64.xlsmを起動
④マクロ→"AllTest"→実行
⑤該当のソースコード部分でエクセルが強制終了します。
発生している問題・エラーメッセージ
Excel
1通常実行時 : 2 エラーメッセージ:無し 3 1:エクセルが落ちます。エラーはありません。 4 2:たまにエクセルが再起動します。
該当のソースコード
VBA
1'//Sqlite3.bas 2 3#If Win64 Then 4Public Function SQLite3BackupStep(ByVal backupHandle As LongPtr, ByVal numberOfPages) As Long 5#Else 6Public Function SQLite3BackupStep(ByVal backupHandle As Long, ByVal numberOfPages) As Long 7#End If 8 ------------------------ここで落ちます。------------------------------ 9 SQLite3BackupStep = sqlite3_backup_step(backupHandle, numberOfPages) 10 -------------------------------------------------------------------- 11End Function
補足情報(FW/ツールのバージョンなど)
Excel2016 64bit
Microsoft???? Excel???? for Office 365 MSO (16.0.11601.20184)64ビット
VBA Ver1088

回答1件
あなたの回答
tips
プレビュー