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

  • 質問

  • 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
    2015年10月9日 10:01

すべての返信

  • サポートされている方法を使って接続するなら、別途サーバーを用意してWEBサービスを構築し、WEBサービス経由で呼び出す事になります。


    甕星

    2015年10月11日 8:02
  • ・ADOを使って Azure SQL データベース に接続するのは、やめた方がいいのでしょうか?

    ・もしそうなら、Access(VBA)からばどうやって接続すれば良いのでしょうか?(リンクテーブルは使わない方法で)

    この2点が知りたいです。

    よろしくお願いいたします。

    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」に書かれています。


    甕星

    2015年11月15日 20:28