VBA:【ADOX】AccessDBとテーブルの作成、プロパティの設定
◆Accessファイルとテーブルの作成
ここではADOXを利用して、Accessを作成しています。
ADOXを利用するには、VBEの参照設定で「Microsoft ADO Ext.2.7 for DDL and Security」を有効にする必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
Sub AccessDB_作成() Dim catADOX As ADOX.Catalog Dim tblADOX As ADOX.Table Dim Constr As String Dim tmp As String Dim TName As String Dim TableExists As Boolean Dim TB As ADOX.Table Dim DBFile As String 'フルパス。作成するAccessのファイル名まで書く' DBFile = "C:\Users\VBA\ADOX\サンプル.accdb" TName = "テーブル1" '作成するテーブル名' Constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile Set catADOX = New ADOX.Catalog '//DBファイルの作成------------------------------------------------' tmp = Dir(DBFile) If tmp = "" Then 'DBの有無を確認し、なければ作成' catADOX.Create Constr 'ここでAccessファイルを作成します。' Else End If '//以下でテーブルの作成をしていきます--------------------------------' catADOX.ActiveConnection = Constr Set tblADOX = New ADOX.Table For Each TB In catADOX.Tables '//テーブルの有無チェック' If TB.Name = TName Then TableExists = True Exit For End If Next TB '//同名のテーブルがなければ作成します。' If TableExists = False Then tblADOX.Name = TName Set tblADOX.ParentCatalog = catADOX With tblADOX 'カラムの作成' .Columns.Append "番号", adVarWChar .Columns.Append "名前", adVarWChar .Columns.Append "科目", adVarWChar .Columns.Append "点数", adVarWChar '文字列以外にも指定ができます。' 'adDate : 日付型 (Date) 値' 'adInteger : 4 バイトの符号付き整数 etc' 'カラムのプロパティの設定' '値の要求「いいえ」=「Attributes」を「adColNullable」に指定' '値の要求「はい」=デフォルト。明示的に書くなら「Attributes」を「adColFixed」に指定' .Columns("番号").Attributes = adColNullable .Columns("名前").Attributes = adColNullable .Columns("科目").Attributes = adColNullable .Columns("点数").Attributes = adColNullable catADOX.Tables.Append tblADOX End With End If Set catADOX = Nothing Set tblADOX = Nothing MsgBox "完了" End Sub |