ADOX を使用してデータベース(Access)を作成
Catalog オブジェクト
【書式】
<CreateObject 関数を使用する場合>
Dim cat As Object
Set cat = CreateObject(“ADOX.Catalog”)
<参照設定を行う場合>
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
参照設定を行うライブラリファイルについて
Microsoft ADO Ext.6.0 for DDL and Security を選択します。ただし、Office 等のバージョンにより、ADOX のバージョンも異なります。参照設定の方法については、ファイルシステムオブジェクト(FileSystemObject)の使い方 を参照してください。
CreatObject 関数 を使用する場合は、参照設定の必要はありませんが、VBE で、自動メンバ表示等のコーディング支援機能が使用できません。また、マクロの実行速度も遅くなります。
Create メソッド
【書式】
object.Create ConnectString
引数・戻り値
- object ・・・ 対象となる Catalog オブジェクトを指定します。
- ConnectString ・・・ データベースの接続文字列をあらわす文字列(String)を指定します。
【Access 2007以降】
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=xxxxx.accdb
【Access 2003以前】
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xxxxx.mdb
ADOX を使用してデータベース(Access)を作成する例
サンプルVBAソース その1
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 |
Sub Sample_ADOX_CreateDatabase() '参照設定:Microsoft ADO Ext.6.0 for DDL and Security Dim cat As ADOX.Catalog Dim ConStr As String Dim DBFile As String On Error GoTo ErrHandler '新規作成するデータベースのパスと名前 'Access 2007以降(accdb ファイル) DBFile = ActiveWorkbook.Path & "\mydb2.accdb" 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.Create ConStr ErrHandler: If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description End If Set cat = Nothing End Sub |
実行前
実行後
サンプルVBAソース その2
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 |
Sub Sample_ADOX_CreateDatabase() Dim cat As Object Dim ConStr As String Dim DBFile As String On Error GoTo ErrHandler '新規作成するデータベースのパスと名前 'Access 2007以降(accdb ファイル) DBFile = ActiveWorkbook.Path & "\mydb2.accdb" 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 = CreateObject("ADOX.Catalog") cat.Create ConStr ErrHandler: If Err.Number <> 0 Then MsgBox Err.Number & vbCrLf & Err.Description End If Set cat = Nothing End Sub |