DAO基礎テクニック──VBAでAccessデータベースの「テーブル/フィールドの作成、削除」を実践Access VBAで学ぶ初心者のためのデータベース/SQL超入門(10)(2/4 ページ)

» 2016年02月26日 05時00分 公開
[薬師寺国安PROJECT KySS]

VBEで「テーブル作成」機能のためのコードを記述する

 続いて、コードを記述していく。

 「作成ボタン」を選択した状態で、プロパティシート→「イベント」タブをクリックする。「▼」アイコンで[イベントプロシージャ]を選択し、「…」アイコンをクリックするとVBEが開き、

Private Sub 作成ボタン_Click()

End Sub


のコードが生成される。これをリスト1のコードに書き換える。

Private Sub 作成ボタン_Click()
  Dim db As DAO.Database
  Dim myTable As DAO.TableDef
  Dim tableName As String
  
  If IsNull(テーブル名入力テキストボックス.Value) Then
    MsgBox ("テーブル名を入力してください。")
    Exit Sub
  End If
  
  Set db = CurrentDb
  tableName = テーブル名入力テキストボックス.Value
  
  Set myTable = db.CreateTableDef(Name:=tableName)
  
  With myTable.Fields
     .Append myTable.CreateField("商品ID", dbInteger)
     .Append myTable.CreateField("商品名", dbText, 50)
     .Append myTable.CreateField("単価", dbCurrency, 20)
  End With
  
   db.TableDefs.Append myTable
   Set myTable = Nothing
   db.Close
   Set db = Nothing
   MsgBox (テーブル名入力テキストボックス.Value & "テーブルを作成しました。")
End Sub
リスト1:指定したテーブルを作成するコード

 リスト1のコードは、以下のように記述してある。

  • 2行目:Database型の変数dbを宣言する。DAO.Databaseの記述では「DAO」を省略しても構わないのだが、本稿はDAOを主役にしたテクニックをお伝えする内容のため、明示的に「DAO」を記述している。
  • 3行目:TableDef型の変数myTableを宣言する。TableDefは、個々のテーブルの定義情報を格納しているクラスだ。
  • 4行目:文字列型の変数tableNameを宣言する。
  • 6〜9行目:「テーブル名入力テキストボックス」が未入力だったら、警告メッセージを表示して処理を抜ける、という記述を入れる。
  • 11行目:カレントデータベースを参照するdbオブジェクトを作成する。
  • 12行目:変数tableNameに「テーブル名入力テキストボックス」に入力された値を格納する。
  • 14行目:CreateTabeDefで指定した名前のテーブルを作成する。書式は下記の通りだ。
Database.CreateTableDef(Name:=テーブル名)
  • 16〜20行目:CreateFiledメソッドで「フィールド名」「データ型」「サイズ」を指定して各「フィールド」を定義している。CreateFieldの書式は下記の通りだ。「Name」はフィールドオブジェクトの一意の名前を表す文字列型の値を指定する。「Type」はフィールドのデータ型を指定する。指定するデータ型は表1の通り。「Size」は最大サイズをバイト単位で指定する(Integer)。それぞれ、不要であれば省略可能だ。
TableDef.CreateField(Name,Type,Size)
表1 よく使用されるデータ型(抜粋)
定数 説明
dbBinary バイナリ型
dbBoolean ブール型
dbByte バイト型
dbCurrency 通貨型
dbDate 日付/時刻型
dbInteger 整数型
dbLong 長整数型
dbMemo メモ型
dbText テキスト型
参照URL:https://msdn.microsoft.com/ja-jp/library/office/ff845405.aspx
  • 22行目:Appendメソッドでデータベースにテーブルを追加する。
  • 23〜25行目:変数myTableを全ての関連付けから解放し、Databaseを閉じ、Databaseも全ての関連付けから解放する。
  • 26行目:テーブルを作成した旨のメッセージを表示する。

「テーブル作成」機能の動作をチェックする

 「フォームビュー」に移って、「テーブル作成」機能の動作を確認しよう。入力欄に「商品管理」と入力して「作成」ボタンを押してほしい(図3)。

photo 図3 テーブルが作成され、その旨のメッセージが表示された

 作成されたテーブルに、フィールドもきちんと定義されているかを確認しよう。

 左端のナビゲーションウィンドウ上部にある「▼」アイコンをクリックして、「テーブル」を選択する。いま作成した「商品管理」のテーブルが表示される。

 商品管理テーブルをダブルクリックすると、フィールドが表示される(図4)。

photo 図4 「商品管理」テーブルの内容が表示された。データはまだ入力していないので、空のままである

 各フィールドにデータ型が定義されているかどうかも確認する。ナビゲーションウィンドウにある「商品管理」テーブルを選択して、右クリックメニューから「デザインビュー」を選択すると、各フィールドの「名前」と「データ型」が表示される(図5)。それぞれのフィールドのデータ型は、リスト1のコードで指定したものになっていることが確認できた。

photo 図5 「商品管理」のデザインビューを表示。それぞれのフィールドのデータ型も適切なものになっている

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。