Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOを用いてテーブルを新しく作成する方法 : VBAのTips解説



CreateTableDef

CreateTableDefメソッドとは、新しいテーブルを作成するメソッドです。これは Jetワークスペースでのみ使用することができます。Tablesコレクションに新規テーブルを追加すると、読み書きが可能になります。なお、少なくとも1つのフィールドを新規作成しない場合、及び追加するテーブル名が既に存在している場合は、コレクションへの追加を行う Appendメソッドの実行時にエラーが発生します。また、コレクションからの削除は、Deleteメソッドで行います。

  • 書式
Set tabledef = database.CreateTableDef (name, attributes, source, connect)
  • 引数
引数 意味 指定
tabledef TableDef型で宣言したオブジェクト変数を指定します 省略不可
database Database型で宣言したオブジェクト変数を指定します 省略不可
name 作成するテーブル名を文字列で指定します 省略不可
attributes 作成するテーブルの属性を指定します 省略可
source 作成するテーブルのデータソースを指定します 省略可
connect テーブルを作成するデータベースの情報を指定します 省略可

関連項目

  1. CurrentDbメソッド(DAO)
  2. CreateQueryDefメソッド(DAO)
  3. CreateFieldメソッド(DAO)
  4. Appendメソッド(DAO)

事例 ) DAOを用いて、住所録テーブルを作成する

DAOを用いて、住所録テーブルを作成します。

  1. 非連結フォームを作成します。
  2. 実行するコマンドボタンを新規作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim db As DAO.Database
   Dim tbdef As DAO.TableDef
   Dim flid As DAO.Field
   Dim flname As DAO.Field
   Dim fladr As DAO.Field

   Set db = CurrentDb
   Set tbdef = db.CreateTableDef("住所録") '--- A

   Set flid = tbdef.CreateField("ID", dbInteger)
   Set flname = tbdef.CreateField("氏名", dbText, 20)
   Set fladr = tbdef.CreateField("住所", dbText, 50)

   tbdef.Fields.Append flid
   tbdef.Fields.Append flname
   tbdef.Fields.Append fladr

   db.TableDefs.Append tbdef --- B

   MsgBox "テーブル作成が完了しました。"

   db.Close: Set db = Nothing

   Exit Sub

エラー:

   If Err.Number = 3010 Then
      db.TableDefs.Delete "住所録"
      Resume
   Else
      MsgBox Err.Number & " : " & Err.Description
   End If

   Exit Sub

End Sub
解説
  1. 住所録テーブルを作成します。
  2. Appendメソッドで、作成したテーブルとフィールドをコレクションに追加します。

動作確認

  1. フォームをビューモードで開きます。
  1. [住所録テーブルの作成]ボタンをクリックします。
  2. 住所録テーブルが作成されます。

ページの先頭へ 前ページへ戻る


DAOを用いてテーブルを新しく作成する方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。