VBA:Excel :ACCESS DB
データベースを作成する(ADOX)
データベースを作成する(ADOX)
AccessVBA、ADOXでmdb作成|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
テーブルの作成・削除/フィールドの作成・削除(ADOX)
Sub Sample_ADOX_CreateTable1() '参照設定:Microsoft ADO Ext.6.0 for DDL and Security '------------------------------------------------------------------------- Dim prm_DataSrc As String: prm_DataSrc = "D:" & "\TestDB.accdb" Dim prm_TbName As String: prm_TbName = "TB_Test" Dim dic_Fld As Dictionary Set dic_Fld = New Dictionary 'フィールド(列)の設定 dic_Fld.Add "登録ID", adInteger dic_Fld.Add "氏名", adVarWChar dic_Fld.Add "生年月日", adDate dic_Fld.Add "備考", adLongVarWChar '------------------------------------------------------------------------- Dim cat As ADOX.Catalog Dim tbl As ADOX.Table Dim ConStr As String Dim DBFile As String On Error GoTo ErrHandler 'データベースのパスと名前 'Access 2007以降(accdb ファイル) DBFile = prm_DataSrc ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile 'Access 2003以前(mdb ファイル) 'DBFile = ActiveWorkbook.Path & "\mydb2.mdb" 'ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFile 'データベース接続 Set cat = New ADOX.Catalog cat.ActiveConnection = ConStr 'テーブルの作成 Set tbl = New ADOX.Table tbl.Name = prm_TbName Set tbl.ParentCatalog = cat 'フィールド(列)の設定 Dim v For Each v In dic_Fld tbl.Columns.Append v, dic_Fld(v) Next v ' tbl.Columns.Append "登録ID", adInteger ' tbl.Columns.Append "氏名", adVarWChar ' tbl.Columns.Append "生年月日", adDate ' tbl.Columns.Append "備考", adLongVarWChar 'テータベースへ登録 cat.Tables.Append tbl ErrHandler: If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description End If Set cat = Nothing Set tbl = Nothing End Sub