DAO基礎テクニック──VBAでAccessデータベースの「テーブル/フィールドの作成、削除」を実践:Access VBAで学ぶ初心者のためのデータベース/SQL超入門(10)(4/4 ページ)
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、VBAでAccessフォームにデータベースの「テーブル/フィールドの作成、削除」機能を配置するテクニックをお伝えする。
「テーブルを削除」する機能を配置する
最後に「テーブルの削除」機能を実装しよう。
テーブル作成フォームの「デザインビュー」に切り替えて、以下のようなテーブル作成フォームを追加する(図8)。
これまでと同様に「テキストボックス」と「ボタン」コントロールを1セット配置し、書式を設定していこう。
テキストボックスのラベルの標題は「削除するテーブル」、テキストボックス本体の名前は「削除テーブルテキストボックス」、同じくボタンの名前は「実行ボタン」と指定する。その他、フォント名、フォントサイズ、フォント太さなどの書式は、各自これまでと同様に設定してほしい。
テーブル削除フォームで配置するコントロールは以下の通りだ。
コントロールの種類 | 名前 |
---|---|
テキストボックス | 削除テーブルテキストボックス |
ボタン | 実行ボタン |
VBEで「テーブル削除」のためのコードを記述する
コードの記述方法の手順もこれまでと同じだ。
「作成実行ボタン」を選択した状態で、プロパティシート→「イベント」タブをクリックする。「▼」アイコンで[イベントプロシージャ]を選択し、「…」アイコンをクリック。VBAで生成されたコードを、リスト3のコードに書き換える。
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 On Error GoTo エラー Set db = CurrentDb tableName = 削除テーブルテキストボックス.Value db.TableDefs.Delete Name:=tableName db.Close Set db = Nothing MsgBox (削除テーブルテキストボックス.Value & "を削除しました。") Exit Sub(A) エラー: MsgBox ("エラーです") Exit Sub End Sub
リスト3のコードは、前述したエラー処理付きで記述してある(10行目、20〜22行目)。
このエラー処理は、指定したテーブルが開いている場合には、「エラー:ラベル」内を実行し、「エラーです。」と表示して処理を抜けるものだ。前述したリスト1、リスト2にもこのエラー処理を追加する応用も試してほしい。なお、「エラー:ラベル」の前に(A)のように(19行目)、Exit Subで処理を抜けるようにしておかないと、テーブルが正常に削除された後でも「エラーです」のメッセージが表示されるので、ここの部分は注意してほしい。
この他は、以下のように記述してある。
- 2〜3行目:Database型の変数dbを宣言する。TableDef型の変数myTableを宣言する。TableDefは、個々のテーブルの定義情報を格納しているクラスだ。
- 5〜7行目:テーブル名が未入力だった場合は、警告メッセージを出して処理を抜ける。
- 11〜12行目:カレントデータベースを参照するdbオブジェクトを作成し、変数tableNameに削除テーブルテキストボックスの内容を格納する。
- 14行目:Deleteメソッドで指定したテーブル名を削除する。削除する場合には「名前付き引数」でdb.TableDefs.Delete Name:=tableNameと指定している。
実際に「フィールド」を削除し、動作を確認する
フォームビューに移って、追加した機能を確認しよう。
削除するテーブル欄に「商品管理」と入力して、「実行」ボタンを押すと、削除した旨のメッセージが表示され、商品管理テーブルが削除される(図9)。
まとめと次回予告
以上、「DAO」を使い、VBAでデータベースの「テーブル作成」と「フィールドの作成/追加」「テーブル削除」の機能を追加し、その処理の流れを解説した。
今回は「Accessのメニューを使わずに」がポイントだ。VBAでテーブルや定義のフォームを作成し、入力するだけで「テーブル」や「フィールド」が作成できるようにしておけば、自分以外の、Accessの操作に慣れていない人でも、簡単にデータベースに触れられるようになる。ぜひ実践でも取り入れてほしい。
次回は、「レコード処理」について解説する。お楽しみに。
筆者紹介
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)
Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)
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がサポートする正規表現クラスを徹底活用する(後編)