改修した神エクセル帳票から回収したデータを格納するため、今回は、Officeの構成アプリとして企業のPCに良く入っている、Accessを使ってデータベースを作成します。さらに、フリーのSQLクライアントである、A5:SQL Mk-2を使って外部から空のDBファイルを操作し、遠隔操作っぽくデータ格納用のテーブルを作ってみます。
DBの準備:Access
今回はAccess2016を使ってデータベース(accdbファイル)を作成しました。
空のDB(accdbファイル)を作成する
Access2016を開き空のDBを作成(kamiExcelDB)します(表1)。
1 | Access2016を起動し「空のデータベース」アイコンをクリック | |
2 | フォルダマーク(右図青枠)をクリックし、保存先フォルダを参照(kamiExcelDB.accdb)、作成するデータベースのファイル名を入力(D:\DB\Access)します。 | |
3 | 作成したデータベース(accdbファイル)が開いたらそのまま閉じます。 |
作成したDBの確認
エクスプローラーから空のデータベースの保存先フォルダ(D:\DB\Access)を開き、入力ファイル名(kamiExcelDB.accdb)で、DB(accdbファイル)が作成されている事を確認します(図1)。
作成したDB(kamiExcelDB.accdb)を開き、空ファイルである事が確認出来たら「コンテンツの有効化」ボタンをクリックします(図2)。
A5:SQL Mk-2を取得し、作成したDBに接続する
「A5:SQL Mk-2」は、フリーのSQLクライアントです。開発や運用の現場でも使われることが多く、たいへんに使いやすいので、ここでも活用したいと思います。
A5:SQL Mk-2の取得
開発元のホームページを開き、Vectorからダウンロードをクリックします(図3赤枠)。
Vectorのダウンロードリンクページに遷移するので、ダウンロードページへをクリックします。今回使うAccess2016が32bit版の為、これに揃えて32bit版を取得したいので、図4赤枠ダウンロードページへをクリックします。
A5:SQL Mk-2(32bit版)のダウンロードページに飛ぶので、今すぐダウンロード(図5赤枠)をクリックします。ダウンロードが始まるので、任意のフォルダに保存します。
A5:SQL Mk-2の初期設定
任意のフォルダにダウンロードしたファイル(A5:SQL Mk-2(32bit版)のzipファイル)を解凍し、A5:SQL Mk-2を使うための初期設定を行います(表2)。
1 | ダウンロードしたZIPファイルを、適宜解凍します。 | |
2 | 解凍フォルダ(本版では、a5m2_2.17.2_x86)を、適当な場所に配置する。今回はCドライブ直下に配置 | |
3 | 配置したフォルダを開き「A5M2.exe」を起動します。 | |
4 | A5:SQL Mk-2の設定ファイルの保存先を選択する画面が表示される。デフォルトは「レジストリ」ですが、今回は「設定ファイル」を選択します。 ※メインフォルダ配下にPortableフォルダが作成され、設定ファイルがそこに集約されるので、メインフォルダごとコピーすることで、別端末でもすぐ使えるようになります。 | |
5 | パスワード指定を求める画面が表示される。個人的に使うので「いいえ」を選択 | |
6 | 最初に接続するデータベースの登録を促す画面が表示されるので「OK」で閉じる。続いて「データベースの追加と削除」画面が表示されます。 →次章、表3-2に続く |
A5:SQL Mk-2から作成したDB(accdbファイル)へ接続する
初期設定の終わったA5:SQL Mk-2から、最初に作成したAccessデータベース(accdbファイル)に接続してみます(表3)。※前章から引き続きDBへの接続設定を行う場合は、表3-2から行ってください。
1 | 「A5M2.exe」を起動し、メニュー[データベース]→[データベースの追加と削除]を選択 | |
2 | 「データベースの追加と削除」画面が表示されたら「追加」ボタンをクリックする。 | |
3 | 「追加するデータベースの接続タイプを選択」画面が表示されます。 今回は「ADO(OLE DB,ODBC)」をクリックします。 | |
4 | 「データベースの内容を登録」画面が表示されたら、フォルダ参照ボタン(右図赤枠)をクリックします。 | |
5 | 「データリンクプロパティ」画面-[プロバイダー]タブが表示されたら「Microsoft Office 16.0 Access Database Engine OLE DB Provider」を選択し「次へ」ボタンをクリックします。 | |
6 | 「データリンクプロパティ」画面-[接続]タブが表示されたら、データソース欄に、接続する「accdbファイル」へのフルパスを入力します。データソース欄を入力したら「接続のテスト」ボタンをクリックします。 | |
7 | ここまでの設定に問題なければ「接続のテストに成功しました」メッセージが表示されます。接続のテストに成功したら「OK」をクリックして「データリンクプロパティ」画面を閉じます。 | |
8 | 「データベースの内容を登録」画面に戻り、接続文字列欄(右図赤枠)に、接続文字列が入力されている事を確認し「OK」ボタンをクリックします。 | |
9 | 「A5:SQL Mk-2で識別するデータベース別名を入力」画面が表示されたら、A5:SQL Mk-2内で使用するデータベース識別名(ここではkami-excel-db)を入力し「OK」ボタンをクリックします。 | |
10 | 「データベースの追加と削除」画面に戻ったら、設定したDB(今回はkami-excel-db)が追加されている事を確認し「閉じる」ボタンをクリックします。 | |
11 | 本画面に戻り、データベースツリーに設定したDB(kami-excel-db)が追加されている事を確認できたら、ダブルクリック(ここではkami-excel-db)します。 | |
12 | 「データベースログイン」画面が表示されたら、今回はそのまま「接続」ボタンをクリックします。 | |
13 | 接続が確立すると、データベースツリーに設定したDB(kami-excel-db)の各種メニューが展開します。 |
A5:SQL Mk-2から接続したDBにCREATE文を流す
任意のaccdbファイルとの接続設定ができたので、A5:SQL Mk-2から前回、改修神エクセルの活用:DB準備(データ定義)で作成した、CREATE文を流し込んでみます。
1 | A5:SQL Mk-2を起動し、メニュー[ファイル]→[新規]を選択します | |
2 | 「新規ドキュメント」画面が表示されたら「SQL」を選択します。 | |
3 | 空白Queryシート(ここでは「Query-2」シート)が追加されます。 | |
4 | Queryシートの左上ドロップダウンリストより、接続先DB(今回は、kami-excel-db)を選択します。前回、改修神エクセルの活用:DB準備(データ定義)で作成した、※CREATE文を貼付けます。「実行」ボタン(右図赤枠の「▶」アイコン)をクリックします。 | |
5 | 「データベースログイン」画面が表示されたら、今回はそのまま「接続」ボタンをクリックします。 | |
6 | 本画面に戻ると、画面左下に「コンソール」子画面が表示され、SQLの処理結果が表示されます。特にエラーが出力されていなければ、問題ありません。 | |
7 | データベースツリーの接続先DB(kami-excel-db)を右クリック→[データベース情報の再読み込み]を選択します。 | |
8 | 接続先DB(kami-excel-db)ツリーのテーブルブランチを展開し、先程実行したCREATE文により作成されたテーブル(T_UIDINFO)が、表示されることを確認します。 |
※表4-4で実行したCREAT文は、以下の通り。前回、改修神エクセルの活用:DB準備(データ定義)で作成した、CREATE文を流し込みました。
CREATE TABLE T_UIDINFO (
user_id VARCHAR(8) NOT NULL,
uname_kj VARCHAR(128) NOT NULL,
uname_kana VARCHAR(128) NOT NULL,
emp_num VARCHAR(8) NOT NULL,
department VARCHAR(128) NOT NULL,
division VARCHAR(128) NOT NULL,
unit VARCHAR(128),
extension_num INTEGER,
birthday DATE NOT NULL,
email_add VARCHAR(28) NOT NULL,
access_lv INTEGER NOT NULL,
option_jyuki INTEGER DEFAULT 2,
option_dev INTEGER DEFAULT 2,
remarks VARCHAR(128),
application_num VARCHAR(7) NOT NULL,
del_flg INTEGER NOT NULL,
reg_date DATE,
up_date DATE,
CONSTRAINT T_UIDINFO_PK PRIMARY KEY (user_id)
)
DBに作成したテーブルのレイアウトを確認する
A5:SQL Mk-2からCREATE文を流し込んだDB(accdbファイル)をAccessで開き、作成したテーブルのレイアウトを確認してみます。
1 | テーブル作成後のDB(kamiExcelDB.accdb)をダブルクリックし、Accessで開きます。 | |
2 | 前章でCREATE文から作成さしたテーブル(T_UIDINFO)を右クリックし、メニュー→[デザインビュー]を選択します。 | |
3 | 前章で実行したCREATE文に記載されたカラム名と並び順で、フィールドが作成されている事を確認します。 各フィールドのデータ型も、CREATE文で記載した通りになりますが、※Access仕様の表記になるので読み替えて確認します。 |
※表5-3でデータ型の確認をするとき、CREATE文で記載したデータ型(SQL標準構文)と、Access仕様の表記が違うので、表6を参考に読み替えて下さい。
№ | SQL標準構文のデータ型 | Access仕様のデータ型 |
---|---|---|
1 | VARCHAR型 | 短いテキスト型 |
2 | INTEGER型 | 数値型 |
3 | DATE型 | 日付/時刻型 |
補足:ミドルウェア選択によるCREAT文の挙動の違いについて
表3-3「追加するデータベースの接続タイプを選択」画面で、ミドルウェアの選択をしますが、ここで、「Microsoft Access(ODBC経由)」を選択しても、DB(accdbファイル)との接続は確立します(図6)。
「Microsoft Access Driver」と言うODBCドライバーで、業界標準のミドルウェアになりますが、実際に接続して、今回使用したCREATE文を実行すると、ステートメントエラーが出力され、テーブルが作成できませんでした(図7)。標準仕様のDB接続で汎用性も高いと思われますが、利用場面によりAccess仕様との違いを吸収できないこともある様です。
一方、表3-5で選択した「Microsoft Office 16.0 Access Database Engine OLE DB Provider」は、Office 2016インストール時に、自動的にインストールされるOLE DBドライバーです。Microsoft独自の機能拡張が施されている為、今回のCREATE文の実行時も、SQL標準構文とAccess仕様との違いを吸収して、使いやすいSQLクライアント環境が提供されます。
関連記事
参考文献
- 松原正和(1997-) ”A5:SQL Mk-2 SQL development Suite” 2022年5月28日閲覧
- 株式会社ベクター「Vector ソフトライブラリ&PCショップ」 “A5:SQL Mk-2” 2022年5月28日閲覧
- ゆき「YukiPress」”DAO、ADO、ODBC、OLE DBの違いを簡単にまとめる” 2022年5月28日閲覧
- Qiita株式会社(2011-) 「Qiita」@yaju ”Microsoft.ACE.OLEDBについてまとめてみた” 2022年5月28日閲覧
コメント