食品成分表(八訂)のテーブル定義書を作成し、Microsoft Acsessに読み込んでみよう!VBA備忘録(2)

VBA
この記事は約6分で読めます。

はじめに

 前回は食品成分表(八訂)をMicrosoft ExcelのVBAを用いて、食品成分表(八訂)内の栄養素が文字列で入力されている部分を栄養計算で利用できるように数値型に変換しました。

 次の記事を参照。

 次は栄養計算で利用できるようした食品成分表(八訂)のテーブル定義書を作成し、その定義書をMicrosoft Acsessに読み込み、読み込んだテーブル定義書にしたがって食品成分表(八訂)のテーブルのデータ部分を全て選択して貼り付けることにより、食品成分表(八訂)のテーブルをAcsessのデータベース化にすることができます。

 それでは、食品成分表(八訂)のテーブル定義書をMcirosoft Excelで作成することから始めましょう。

 その前に、私のパソコン環境やソフトのバージョンを以下に記しておきます。

パソコンOS : Windows10 Pro
Windowsバージョン : 21H1
Microsoft Acsess及びExcelバージョン 64ビット版: 2201

食品成分表(八訂)のテーブル定義書の作成からAcessにデータを取り込むまで

 食品成分表(八訂)のテーブル定義書を勝手に自分用に作成しても良いのですが、Acesessに自動で読み込んでテーブルの定義情報を作成してくれるツールが無料で利用できますので。これを利用します。

 そのツールは、DB(ACCDB)生成/テーブル定義取得ツールです。

DB(ACCDB)生成/テーブル定義取得ツールのダウンロードと使い方

 上述にアクセスすると、ツールの使い方などが書かれており、下にスクロールすると「ダウンロード」ボタンがありますので、それをクリックすると「MDB(ACCDB)TableDefines1.zip」がパソコン内にダウンロードできます。

 ダウンロードした「MDB(ACCDB)TableDefines1.zip」を作業用ホルダーに移し、解凍すると「MDB(ACCDB)TableDefines1」ホルダー内に次の2つののファイルが入っています。

  1. MDB(ACCDB)テーブル定義(テーブル操作サンプル).xlsm
  2. MDB(ACCDB)テーブル定義.xltm

 「Ⅰ.」のファイルは、サンプルファイルで簡単なテーブル定義書が4つほどあり、シートに分けて入力されています。

 このファイルの上部メニューの「開発」⇒「Visual Basic」とクリックすると、左のプロジェクトにVBA Project(MDB(ACCDB)テーブル定義(テーブル操作サンプル)が表示されますので、その中の 「Module 1」をダブルクリックすると右の画面にVBAのコードが表示されますので、「F5」をクリックリックするか上部メニューの 「実行」⇒ 「sub/ユーザーフォームの実行」をクリックして、表示されるマクロ画面で 「MDBファイルの生成」を選択して「実行」をクリックすると、Acesessの作成するデータベースのファイル名を聞いてくるので、ファイル名(デフォルトの ⑤ファイル名SampleCorp1、変更が可能)とファイルの種類(ACCDBファイル)を選択して「保存」をクリックすれば、Excelに書かれたテーブル定義情報がAcesessに読み込まれてテーブルが作成されます。

 作成された「SampleCorp1.accdb」をクリックして開いて見て下さい。

 Excelで作ったテーブル定義書にしたがって4つのテーブルが作成されていることが分かります。

食品成分表(八訂)のテーブル定義書の作成

 次に食品成分表(八訂)のテーブル定義素を作成していきますが、先にダウンロードした「MDB(ACCDB)テーブル定義.xltm」をコピーして、好きな名前を付けます。

 ここでは、「MDB(ACCDB)テーブル定義(食品成分表).xlsm」とファイル名を付け、この中に食品成分表の4つのテーブル定義書を書いていきます。

 元々、食品成分表(八訂)のエクセルファイルがありますので、そのファイル内のデータを見て、そのデータにあったフィールド名、データ型、主キーなどを設定します。

 本表の最も利用する食品成分表の項目数(フィールド数)は61あり、索引番号(オートナンバー型)を割り当て、その他、食品群コード、商品番号(主キー)、食品名、備考、利用可能炭水化物(単糖当量)、差引き法による利用可能炭水化物の「*」が付いているカラムは短いテキスト型とし、その他の栄養素のデータが入っている部分は、栄養計算に利用するので倍精度浮動小数点型とし、値要求は備考、利用可能炭水化物(単糖当量)、差引き法による利用可能炭水化物の「*」が付いているカラム以外は「あり」、空文字は備考以外は「不可」とした。

 それ以外の3つの表は、本表にしたがって同様なテーブル定義書を作成した。

 下図は、食品成分表(本表)のテーブル定義書です。

 作成した食品成分表(八訂)のテーブル定義書は忘れずに保存しておいて下さい。

作成したテーブル定義書をアクセスに読み込む

  作成した食品成分表(八訂)のテーブル定義書を今度はAcsessに読みこませ、4つの空のテーブルを作成します。

 作成方法については、先の「DB(ACCDB)生成/テーブル定義取得ツールのダウンロードと使い方」で記述していますので、そちらを参照ください。

 Acsessに読み込み、作成された4つの空の食品成分(八訂)のテーブル定義情報を次に示します。

読み込んだ食品成分テーブルに実データの貼り込み

 次に食品成分表(八訂)をAcsessに読み込めるように栄養素が文字列で記入されている部分を数値型に変換した表のデータ部分を全てコピーします。

 コピーしたデータを、アクセスの該当する表テーブルにペーストします。

 ここでは、食品成分表(八訂)の本表部分について紹介します。

 Acsessの貼り込むテーブルのデータシートビューにして、一番左にある「*」をクリックして、先ほどコピーした食品成分表(八訂)のデータ部分をペースト(Ctrl + V)すると、「2478件のレコードを貼り付けようとしています。レコードを貼り付けますか?」と聞いてくるので、「はい」をクリックします。

 この操作を、食品成分表(八訂)のアミノ酸成分表、脂肪酸成分表、炭水化物成分表についても同様な操作により、データ部分をペーストします。

 これにより、食品成分表(八訂)のデータを丸ごとAcsessのテーブルに読み込むことができました。

おわりに

  如何だったでしょうか?

 食品成分表(八訂)のテーブル定義書の作成からAcessにデータを取り込むまで、DB(ACCDB)生成/テーブル定義取得ツールのダウンロードと使い方、食品成分表(八訂)のテーブル定義書の作成、作成したテーブル定義書をアクセスに読み込み、読み込んだ食品成分テーブルに実データの貼り込みなどついて紹介してきました。

 次は、食品群テーブル(食品群コードと食品群名)のテーブルを作成し、これらと食品成分(八訂)のテーブルのリレーションを作成します。

 お楽しみに・・・。

以上です。

コメント

タイトルとURLをコピーしました