VBAでDBを参照、更新するツールを作って配布しようと思っています。
VBAでDB接続する際にODBCを使うとコントロールパネルから接続情報を指定する必要がありますが、そのような設定を一切せずに、かつ簡単にVBAの中だけで完結する方法はあるのでしょうか?
あれば、接続部分のサンプルソースが欲しいです。
ADOを使うと設定が要らないという記事を見つけたのですがサンプルソースが見つかりません。
ツールを動かす環境:
windows7,8
excel2010
DB:リモートのmysql
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
1
ベストアンサー
ここのコードはどうでしょうか。
接続部分だけ抜粋すると、以下の様になります。
lang
1Set Cn = CreateObject( "ADODB.Connection" ) 2strDriver = "{MySQL ODBC 5.3 Unicode Driver}" 3strServer = "localhost" 4strDb = "DB名" 5strUser = "root" 6strPass = "パスワード" 7ConnectionString = _ 8"Provider=MSDASQL" & _ 9";Driver=" & strDriver 10ConnectionString = ConnectionString & ";Server=" & strServer 11ConnectionString = ConnectionString & ";Database=" & strDb 12ConnectionString = ConnectionString & ";UID=" & strUser 13ConnectionString = ConnectionString & ";PWD=" & strPass 14ConnectionString = ConnectionString & ";" 15Cn.Open ConnectionString 16
こちらにも説明があります。
いずれにしても、配布先マシンへのMySQLのODBCドライバのインストールは必要と思います。
投稿2015/07/08 02:37
編集2015/07/08 02:40総合スコア1546
0
1.目的のデータベースへ最低限接続できる、ドライバが無いと接続出来ないのは理解可能かと。
2.MDAC / JET-MDB は、Windows 7 / 8 ならば、標準で入っています。
Windows NT ~ 幾たびかの変遷、OSのSP&パッチによる、細かい仕様違いがあります。
3.いにしえの、UDLファイル相当で可能な接続は、ADO / ADO.NET で記述可能です。
ODBC x32 / ODBC x64 で、ドライバが異なる様に、VBAも、x32 / x64 の違いが
OFFICEレベルで出来てしまいましたから、注意が必要です。
Windows 7/8 x64 , Windwos 7/8 x32 を用意して、夫々で、拡張子:UDLのファイルを
作って、編集してみてください。実体は、テキストファイルです。
どこかで見た、MS SQL Serverの接続設定の様な、画面が出て来る筈です。
検索するのであれば、metadata collection 辺りからなのですが、慣れていないと、
難しいかも&VBA用の古い情報がでてくるかどうか。
4.ADO / ADO.NET での、ODBC / OLEdb / 各Native Client の、接続方法の違いを理解してください。
使用可能な、SQL、ワイルドカード等も各々微妙に異なります。
MySQL であれば、MySQL Connector / MySQL Connector.NET 他の情報を、確認してください。
ODBC / OLEdb / 各Native Client の、x32/x64 版のどちらかだけだったり、
提供されていない場合がある事に、注意してください。
5.接続文字列は、the connection string reference の様なサイトで、
調べられます。
投稿2015/07/08 02:50
編集2015/07/08 02:58総合スコア2030
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/08 08:50
2015/07/08 09:53 編集
2015/07/09 03:13 編集
2015/07/09 03:22