質問者
Access(VBA) で Azure SQL データベースに接続する方法(ADOは非推奨?)

質問
-
Access(VBA)で、ADOを使って Azure SQL データベース にODBC接続をしています。
Dim con As New ADODB.Connection
con.ConnectionString = "Driver={SQL Server Native Client 11.0};" & _
"Server=mydatabase.database.windows.net;" & _
"UID=myuserid;" & _
"PWD=mypwd;" & _
"Encrypt=yes;" & _
"TrustServerCertificate=no;"
con.Open
一応、この方法で接続はできているのですが、MSDNに
『OLE DB または ADO を使用した Microsoft Azure SQL データベース への接続はサポートされていません。』
と書かれていました。
https://msdn.microsoft.com/ja-jp/library/azure/ee336245.aspx
OLE DB がサポートされていないのは承知していましたが、『または ADO』とあるため、驚いている状況です。
ADOを使って Azure SQL データベース に接続するのは、やめた方がいいのでしょうか?
もしそうなら、Access(VBA)からばどうやって接続すれば良いのでしょうか?(リンクテーブルは使わない方法で)
方法をご存じの方がおられましたら、是非教えて頂きたく、何卒よろしくお願いいたします。
- 編集済み tango100 2015年11月12日 8:11
すべての返信
-
私も前回返答した後、思うところあって考察していました。
結論としてはADOに限らず参照の追加を必要とする用途にはVBAを使わず、その後に提供されたApps for OfficeやVSTOを使うのがよいかと思います。またAccessに限っては、外部のテーブルを参照するならリンクテーブルを使えって事になるかと思います。
VBAはCOMをベースとしたテクノロジーですが、既にCOMをベースとしたテクノロジーはメンテナンスされなくなってきています。ADOも2.8移行はバージョンが固定されており、SQL Server 2005以降に追加されたSQL Serverの機能には対応していません。OSとともに配布されているのでセキュリティパッチは提供されていくはずですが、今後もバージョンが更新されることはないでしょう。
WEBサービスとして呼び出すほかないのではと回答しましたが、XMLパーサーとしてよく使用されているMSXMLはIEのコンポーネントで将来はなくなる可能性が高いです。SOAP Toolkitを使う方法もありますが、こちらは別途ランタイムをインストールする必要があります。
ちなみにVBAの公式なロードマップに関しては「Roadmap for Apps for Office, VSTO, and VBA」に書かれています。
甕星