前回、管理システムの元ネタとなるデータをMediaMarkerからダウンロードし、利用する項目を選定しました。
今回はCD・本データを格納しておく、SQLite3データベースを作成します。
SQLite for Excel でデータベース作成
以前にも使用しました『SQLite for Excel』を使ってVBAからSQLite3データベースを操作していきます。
標準モジュールへ下記のコードを記載
Option Explicit Sub CDBookManger_DBMake() Dim DBHandle As Long Dim DBFullpath As String '①sqlite3.dllとSQLite3_StdCall.dllを使用可能状態にする SQLite3Initialize DBFullpath = ThisWorkbook.Path & "\CDBookManager.db3" '②データベースの作成・オープン SQLite3OpenV2 DBFullpath, DBHandle, SQLITE_OPEN_READWRITE + SQLITE_OPEN_CREATE,"" Dim mySQL As String mySQL = "Create Table CDBookManager(" mySQL = mySQL & "タイトル text," mySQL = mySQL & "カテゴリ text," mySQL = mySQL & "レーベル text," mySQL = mySQL & "アーティスト text," mySQL = mySQL & "購入日 text," mySQL = mySQL & "状態 text," mySQL = mySQL & "評価 integer," mySQL = mySQL & "コメント text," mySQL = mySQL & "所有 text" mySQL = mySQL & ")" Dim StmtHandle As Long '③SQL文の実行 SQLite3PrepareV2 DBHandle, mySQL, StmtHandle SQLite3Step StmtHandle SQLite3Finalize StmtHandle '④データベースを閉じる SQLite3Close DBHandle End Sub
①でsqlite3.dllとSQLite3_StdCall.dllを使用可能状態にします。
引数を指定しない場合はこのマクロを実行しているBookと同じファイルにdllを探しに行きます。
別の場所を指定する場合は第1引数にフォルダパスを指定してください。
②でデータベースの作成・オープンを行います。
既に同名のデータベースがある場合はオープンのみ実行。
③でSQL文を実行します。
・SQLite3PrepareV2
・SQLite3Step
・SQLite3Finalize
以上3つはこの順番でセットで実行してください。
データベース作成のSQL文構文
Create Table テーブル名(列名 列属性)
数値として扱いたいもの以外はText属性で大丈夫だと思います。
数値の場合はInteger型を指定してください。
④でデータベースを閉じます。
現在の状態はこのような感じでしょうか。
まとめ
CD・本を格納するためのデータベースが出来上がりました。
次回はMediaMarkerからダウンロードしたCSVファイルから必要なデータを、データベースへインポートしたいと思います。