• 締切済み

●Excel VBAからSQLServerのデータベースへのADO接続

●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

みんなの回答

noname#245936
noname#245936
回答No.1

「理由:SQL Serverの信頼関係接続に関連付けられていません」 ということですので。 Excelでアクセスをしに行くPCが、サーバに対しWindows統合認証が 通っていないということになります。 Windows統合認証というのは、単にWindowsアカウントを使い回し した認証アクセス方法ですので、Excelを操作しているPCのアカウ ントをサーバに登録してやればOKです。 (例では、funao74/passwordをサーバに登録する)

funao74
質問者

お礼

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

funao74
質問者

補足

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

関連するQ&A