プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
AccessVBA、ADOXでmdb作成
Accessなんてすっかり忘れていた今日この頃、友人から
「adoでmdb作りたいって言われたんだけどどーすんの?」と訊かれました。
と言う訳で調べたところ、ADOXとか言うのでできるみたいです。

取りあえず今回はAccess2003でのお話(--)b
2007とか2010も基本的には同じでしょう、多分。

1.コードエディタで「ツール」→「参照設定」
 「Microsoft ADO Ext 2.X for DDL and Security」にチェック

2.こんな感じでコードを書くφ(--)

    Dim catalog As ADOX.catalog
    Dim connection As String
    Dim mdbName As String
    
    connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    mdbName = "C:\hoge.mdb"
    Set catalog = New ADOX.catalog

    catalog.Create connection & mdbName

    Set catalog = Nothing



完成ヽ(´∀`)ノ

・・なのですが。
「Microsoft.Jet.OLEDB.4.0」って64bitじゃ動かないので要注意(--)b
Windows7さんの64bit環境、Access2010で上記コードを動かしたら
「クラスが登録されていません」とか怒られました。
そんなときは接続文字列を「Microsoft.ACE.OLEDB.12.0」に変えて

    Dim catalog As ADOX.catalog
    Dim connection As String
    Dim mdbName As String
    
    connection = "Provider=
Microsoft.ACE.OLEDB.12.0;Data Source="
    mdbName = "C:\hoge.mdb"
    Set catalog = New ADOX.catalog

    catalog.Create connection & mdbName

    Set catalog = Nothing


とかすれば無事に動くみたいです。
てか動きました。


ただ個人的に環境に依存するのはあまり好きではないのですよね。
友人には「あらかじめ空のMDB手動で作っておいてコピーして使ったら?」と
身も蓋もない解決方法を提案しておきました。

友人も「だよねー」って言ってたので
現在のところ得票数は2票です。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Access VBA  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事