先日、個人情報データ(A)と顧客名簿マスタ(B)を付き合わせ、個人情報データ(A)の顧客氏名が正しいことをチェックして欲しいという依頼がありました。(A)のデータ件数が約10万件、(B)のデータ件数が約140万件です。普通に頑張っても終わる作業ではありません。この作業が今後も随時、発生するためツール化して欲しいとのこと。また、個人情報なのでDBに保管せずに、作業の都度、(A)と(B)をテキストファイルで渡すので読み込んで処理できるように。とのお話でした。
データ件数が巨大のため、データベースを利用してSQLで処理したいと思いました。まず、MDBを利用して処理しようと思いました。MDBにMS−ACCESSを利用してデータをインポートして、クエリを作成することにしました。数件程度のデータでテストを実施し、正常に動作することが確認できたので本番データで処理を実行しました。
結果は、NGでした。問題点が2つ。1つは、インポートしたデータ件数が途中で終わっていること。もう1つは、処理時間がかかりすぎること。インポートは手動でMS−ACCESSから実行すると正しく動作するので、コードから実行した場合の何か問題があるのでしょう。処理時間は、約2時間くらいかかりました。
色々と粘りましたがMDBファイルのサイズがどんどん膨れ上がり、あまり進展が望めないので他の方法を探すことにしました。MDBファイルのように簡単に扱え、クライアントで十分のフリーのDBMSはないか?と・・・。そこで見つけたのが「SQLite」でした。
SQLiteの情報は少ないです。あまりメジャーではないようですね。それもVBAで利用するという奇特な方は少ないようで、さらに少なくなります。まずは、情報集めから開始です。
(1) SQliteの特徴
・サーバ不要、軽量
・ライセンスはパブリック・ドメイン
・SQL92サポート(完全ではない)
・トランザクションサポート
・最大サイズ 2テラバイト
(2) SQLiteサイト
こちらから
(3) COM Wrappers/VisualBasicDLLs
・SQLitePlus
・dhSQLite
・SQLiteDB
・SQLite3VB
・LiteX
・SqLite2X
他にもありますが一部リンク切れもありました。
(4) ツール
・SQLite ControlCenter
・SQLite Database Browser
(5) SQLiteが認識できるSQL
こちらから
(6) 役に立つサイト
・rakutoネット
・MS Access庵
今日はこの辺で。また!










