電子書籍の厳選無料作品が豊富!

●Excel VBAからSQLServerのデータベースへのADO接続をopenしたい

ローカルのExcel VBAから、Windows2003Serverで動いているSQLServerのデータベースへのADO接続をopenにできるコードを教えてください
===========================================

<環境>
データベースの場所は、サーバーマシンのFドライブ内にあります。
(具体的には、サーバーマシンの『f:\SQLData\MSSQL\data\OrderSQL2.MDF』が接続先実体で、サーバーマシンのIPは192.168.16.2です(ipconfig/allでIP確認)。)
また、ローカルマシンは、ローカルOS:WinXP、エクセルのバージョンはExcel2007、ローカルユーザーのサーバーでのWindows認証はすでにされており、Microsoft ActiveX Data Object2.8 Library, Microsoft ADO Ext.2.8 for DDL and Securityといったエクセルの参照設定は追加してあります。
===========================================

<結果>
ここで、以下のコードを書いたのですが『ユーザーのログインに失敗しました。理由:SQL Serverの信頼関係接続に関連付けられていません』というエラーが出て接続できません。
試しに、SQLServerのセキュリティ認証モードを混合モードにしても変わりません。
どなたかご教授いただけると本当に助かります。
ヒントや思いつきでもいいので、何卒宜しくお願いします。




Sub DBconection()
    Set Cn = New ADODB.Connection
   Cn.Provider = "SQLOLEDB.1"
   Cn.ConnectionString = _
   "Data Source=192.168.16.2;" & _
   "User Id=funao74;" & _
   "Password=password;" & _
   "Initial Catalog=OrderSQL2"

   Cn.Open
End Sub

A 回答 (1件)

「理由:SQL Serverの信頼関係接続に関連付けられていません」


ということですので。
Excelでアクセスをしに行くPCが、サーバに対しWindows統合認証が
通っていないということになります。

Windows統合認証というのは、単にWindowsアカウントを使い回し
した認証アクセス方法ですので、Excelを操作しているPCのアカウ
ントをサーバに登録してやればOKです。
(例では、funao74/passwordをサーバに登録する)

この回答への補足

http://www.shoeisha.com/mag/windev/pdf/870505/wi … にあるように、
SQL Server認証でのログインを許可するように認証モードを変更するか、Windows認証でログインを試みるように接続文字列を変更すればよかったみたいで、接続文字列に"Integrated Security=SSPI"を追記したところ接続できました。
ありがとうございました。

補足日時:2010/07/29 17:38
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

サーバへの登録はしているつもりだったのですが、なんらかの不具合があるということですね。
そこらへん確認して試してみます。
取り急ぎお礼まで。
ありがとうございます!

お礼日時:2010/07/20 17:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!