SSブログ

「SQLite ODBC」 Excel AccessからSQLiteデータベースを使用する SQLポケリ [SQLポケリ]

本日のネタは、SQLite ODBCである。

DSC_1228[1].jpg

ExcelからSQLiteを使う場合の手段としてSQLite for Excelは試してみたのだが、本日はSQLite ODBCをやってみたいと思う。
ODBCドライバなら汎用性が高い。ExcelだけでなくAccessやその他のソフトウェアと連携することができる。



まずは、以下のサイトからsqliteodbc.exeをダウンロードしてくる。



ちょっと怪しげな海外のサイトではある。まぁ大丈夫でしょう。カスペルスキー入ってるし。

で、もってきたsqliteodbc.exeを実行する。

2018-06-13 (1).png

2018-06-13 (2).png

2018-06-13 (3).png

2018-06-13 (4).png

2018-06-13 (5).png

こんな感じであっという間にインストールは終了
Oracleだとかはこうはいかない。いいねぇ軽量データベースは。

ODBCって本当は、Open Database Connectivity (コネクティビティの綴りあってる?)なのでサーバに接続するための仲介用ソフトウェアしか用意されていないはず、なんだけどSQLite ODBCの場合はSQLiteエンジンも含まれているので、ODBCだけでデータベースが使えるようになる。

Oracleに接続する用のODBCドライバを入れても、Oracleデータベースがなければ「話にならない」のとは別でSQLite ODBCドライバを入れたら、「それだけでデータベースが使える」ようになるわけである。これはお手軽。

Program Files (x86)\SQLite ODBCにインストールされているらしいので、そのフォルダを覗いてみると、sqlite3.exeを発見。PATH環境変数を切ってやる。

コマンドプロンプトからsqlite3コマンドを実行してみる

C:\Users\asai>sqlite3 testsqlite.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite>


おっ ちゃんと動くじゃない。

ODBCの設定をして、データベースを作ってみる。

2018-06-13 (6).png

2018-06-13 (7).png

ODBCのDSN「SQLite ODBC」が作成できた。

これでExcelからでもAccessからでもSQLiteデータベースが使えるはず。
データベースファイルのパスは、「C:\Users\asai\testsqlite.db」とした。
まずは、からっぽなのでsqlite3コマンドでテーブルだけ作ってやる。

C:\Users\asai>sqlite3 testsqlite.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> create table foo (a integer, b text);
sqlite> .quit


次に、MS Accessでテーブルをリンク(アタッチ)する。
[外部データ]タブ -> [新しいデータソース] -> [他のソースから] -> [ODBCデータソース]をクリックしていく。
インポートじゃなくて、テーブルにリンクするの方を選択。
コンピュータデータソースでさっき作ったSQLite ODBCを選択。

2018-06-13 (10).png

2018-06-13 (11).png

テーブルの一覧が表示された。
fooしかテーブル作ってないからOK。
fooを選択して、OKボタンを押す。
プライマリキーの選択になったが、とりあえずのテストなので無選択でOK。

2018-06-13 (12).png

テーブルfooがリンクできた。
開いてみたが編集できず。リンクテーブルってそういうものなんだっけ?
プライマリキーを設定していないからか?しまった。

もう一回リンクテーブルを作って、プライマリキーをa列にしてみた。

2018-06-13 (13).png

入力できるようになった。

えっプライマリキーの付け方がわからないって?そんなあなたには「SQLポケットリファレンス」ですよ。



C:\Users\asai>sqlite3 testsqlite.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> select * from foo;
1|いち
2|二
3|さん
sqlite>


ちゃんと入ってる!

MS Accessの記事についてはこちらを参照されたし



サイト内を検索

nice!(1)  コメント(2) 
共通テーマ:携帯コンテンツ

nice! 1

コメント 2

中山

はじめまして
わかりやすい解説で、AccessでODBC接続でSQLiteのテーブルをリンクすることができました。そして、Accessのクエリーでデータのインサートもできました。しかし、クエリーの”DELETE * from Table;”を実行させたら、エラーになりました。SQLite側の環境では、"DELETE from Table;"で、全データが削除できることを確認できました。
Accessのクエリーで、リンク先のSQLiteのテーブルのデータを全て削除するには、どのようにすれば良いのかわかりません。
ご存じなら、おしえてほしいのです。
お手数ですが、よろしくお願いします。
by 中山 (2022-01-13 10:20) 

AREarthroid

もしかして「DELETE * From Table;」で実行してませんか?
Accessの削除クエリでやるとこうなるのかな?
単なるクエリかな。レコードの削除は削除クエリでやらないとダメだったかも。

DELETE命令では「*」付けたらエラーになると思います。

「DELETE From Table;」

で試してみて下さい。
by AREarthroid (2022-10-09 19:10) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。



Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

イラストで理解 SQL はじめて入門

イラストで理解 SQL はじめて入門

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/16
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。