SQLite (エスキューライト)をWindows10にインストール

SQLiteは、小さく、 高速で、 自己完結型で、 信頼性が高く、 フル機能のSQLデータベースエンジンを実装するC言語ライブラリです 。SQLiteは、世界で最も使用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピューターに組み込まれており、人々が毎日使用する無数の他のアプリケーションにバンドルされています。

エクセルVBAとSQLiteの組み合わせで業務効率化を検討中です。

SQLiteとは?

エスキューライトは、オープンソースで軽量な関係データベース管理システム (RDBMS) である。サーバとしてではなくアプリケーションに組み込んで利用されるデータベースである。サーバー不要のファイルベースで動作することが特徴で、PHP 5から標準で組み込まれた。コマンドラインツールも使える。CUIベースの管理ツールを標準で備える。標準で搭載しているデータセットの型は整数型 (INTEGER)、文字列型 (TEXT)、無制限スカラ型 (BLOB) の3種類である。サポートしている型は、Null/Integer/Real/Text/BLOBのみ。Android端末の標準ライブラリとして採用されている。トランザクションをサポートしている。一度トランザクションを開始するとストレージはロックされ、トランザクション中のセッションはキャッシュを有効利用して動作するため、高速にデータベースにアクセスすることができる。SQL文によるデータベースの操作のほか、トランザクション処理やトリガー、ビューなどの機能にも対応している。

データベースにはプログラム内からAPIなどを利用してアクセスできるほか、標準添付のコマンドラインツールでOSのシェルなどから利用者が直に操作することもできる。外部の開発者によってグラフィカル(GUI)な操作環境も公開されている。

最新のリリース

3.36(2021-06-18)

管理ツール

「sqlite」または「sqlite3」・・・標準コマンドラインツール
「Navicat for SQLite」・・・有償ツール
DB Browser for SQLite(DB4S) ・・・オープンソースツール

ODBC

SQLiteのODBCドライバがサードパーティーから提供されている。

SQLiteをWindows10 64bitにインストールする

SQLiteの公式ダウンロードページ (https://www.sqlite.org/download.html)にアクセスします。「Precompiled Binaries for Windows」の中にある「64-bit DLL (x64) for SQLite」をダウンロードします。

DLLをダウンロード

SQLiteは、PHP や Rails やVBAなどの他のアプリケーションから利用される場合が多いです。この場合はコマンドライン用の sqlite3.exe ではなく sqlite3.dll を利用します。

sqlite-dll-win64-x64-3360000.zipをダウンロードします。

ダウンロードしたファイルを展開し、ファイルを「C:\sqlite3」のフォルダに配置します。

SQLiteコマンドラインツールのダウンロード

sqlite-tools-win32-x86-3360000.zipをダウンロードします。

ウンロードしたファイルを展開し、ファイルを「C:\sqlite3」のフォルダに配置します。

データベースの作成

sqlite3.exeをダブルクリックして起動するとコマンドプロンプトが起動します。

.open データベース名

を実行すると指定した「データベース名」のファイルが作成され、データベースが作成されます。

実行例
.open sample.db (拡張子は不要ですが、わかりやすいようにdbにします。)

「–new 」を付けると,すでにデータベースファイルが存在するときは,その中身を空にします。

.open –newデータベース名

終了コマンド

.exit

テーブル作成

create table テーブル名

実行例 (データ型の指定なし)
create table user(id, name);

実行例2(データ型の指定あり)
create table user2(
id integer primary key not null,
name text not null);

テーブルが定義されたことを確認

.table

オープンソースGUIツールのDB Browser for SQLite(DB4S) のインストール

DB Browser for SQLiteeの公式ダウンロードページ (https://sqlitebrowser.org/dl/)にアクセスします。

DB Browser for SQLite – Standard installer for 64-bit Windows をダウンロードしました。

DB.Browser.for.SQLite-3.12.2-win64.msiを起動し、ショートカットは全選択して、インストールしました。

DB Browser (SQLite)を起動

ファイル→データベースを開くから「C:\sqlite3\sample.db」を選択します。

作成した2つのテーブルが確認できます。

データ閲覧のタブでデータを追加しました。

SQLite ODBC Driverをインストール

VBAからADOを使ってSQLiteを操作するためにODBCドライバーを入れます。

エクセルは2016の32bitをインストールしてあります。標準で64bit版がインストールされるようになったのはOffice 2019からそうです。

ダウンロードページ (http://www.ch-werner.de/sqliteodbc/)にアクセスします。

今回は32bit版のsqliteodbc.exeをダウンロードします。ダウンロードしたファイルを実行します。

デフォルトでインストールします。

インストール後、「DOBC Data Sources(32bit)」を起動します。

追加ボタンをクリックすると「SQLite3 ODBC Driver」がインストールされたことを確認できます。

また、システムDSNのタブをみると、「システムデータソース」として「SQLite3 Datasouce」が追加されていました。

VBAからADOを使用してデータベースに接続する

Microsoft ActiveX データオブジェクト (ADO) を使用すると、クライアントアプリケーションは、OLE DB プロバイダーを介してさまざまなソースからのデータにアクセスして操作できます。

参照設定の追加

空のエクセルを作成し、マクロとして保存します(xlsm)。

Alt+F11 でVBEを起動します。

ツール→参照設定 から

Microsoft ActiveX Data Objects 6.1 Library を追加します。

VBAを書く

Sub SQLiteテスト()

    Dim dbFile As String
    Dim objCn As New ADODB.Connection
    
    Dim objRS As New ADODB.Recordset
    Dim strSQL As String
    
    'ファイルを指定
    dbFile = "C:\SQLite3\sample.db"  '存在しない場合は新規作成される

    'SQLiteは、user idやpasswordはいらない
    objCn.Open "DRIVER=SQLite3 ODBC Driver;Database=" & dbFile
    
    'SQL処理
    strSQL = "select * from user"
    
    Debug.Print strSQL
    
    'テーブルOPEN
    objRS.Open strSQL, objCn, adOpenKeyset, adLockReadOnly
 
    Debug.Print objRS.Fields(0).Value
    Debug.Print objRS.Fields(1).Value
    
    objRS.Close
    objCn.Close
    Set objCn = Nothing
End Sub

VBAの実行

1行目のレコードを表示しました。

複数の外部システムからのCSVデータをSQLiteのデータベースに登録すれば、エクセル上で、いろいろなデータ集計が可能です。

CSVファイルを読み込み、テーブルへの登録する処理を今度、試してみます。

以上です。

System

Posted by zzz