連載
DAO基礎テクニック──VBAでAccessデータベースの「テーブル/フィールドの作成、削除」を実践:Access VBAで学ぶ初心者のためのデータベース/SQL超入門(10)(2/4 ページ)
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、VBAでAccessフォームにデータベースの「テーブル/フィールドの作成、削除」機能を配置するテクニックをお伝えする。
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)
定数 | 説明 |
---|---|
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)。
作成されたテーブルに、フィールドもきちんと定義されているかを確認しよう。
左端のナビゲーションウィンドウ上部にある「▼」アイコンをクリックして、「テーブル」を選択する。いま作成した「商品管理」のテーブルが表示される。
商品管理テーブルをダブルクリックすると、フィールドが表示される(図4)。
各フィールドにデータ型が定義されているかどうかも確認する。ナビゲーションウィンドウにある「商品管理」テーブルを選択して、右クリックメニューから「デザインビュー」を選択すると、各フィールドの「名前」と「データ型」が表示される(図5)。それぞれのフィールドのデータ型は、リスト1のコードで指定したものになっていることが確認できた。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみようAccess VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方
今回は、テーブルを基にデータ入力フォームを作成し、ラベル、テキストボックス、コンボボックス、ボタンリストボックスを追加する手順を解説する- SQLとはどういう言語か
Accessを使うなら最低限知っておきたいSQL文を使ったさまざまな種類のクエリ操作の基本
今回は、テーブルに「SELECT文」や「BETWEEN演算子」などのSQLを入力し、データベースに蓄積したレコードを抽出する方法を解説する初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法
Accessでフォームからデータを追加し、Excelのシートにエクスポートする
SQLとはどういう言語か
数値判定、乱数発生、数値の丸めなど、数値に関する4つの関数の使い方
制御文で道案内
使うほどに良さが分かる正規表現
.NET Frameworkがサポートする正規表現クラスを徹底活用する(前編)
.NET Frameworkがサポートする正規表現クラスを徹底活用する(後編)