- 締切済み
●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
- みんなの回答 (1)
- 専門家の回答
みんなの回答
「理由:SQL Serverの信頼関係接続に関連付けられていません」 ということですので。 Excelでアクセスをしに行くPCが、サーバに対しWindows統合認証が 通っていないということになります。 Windows統合認証というのは、単にWindowsアカウントを使い回し した認証アクセス方法ですので、Excelを操作しているPCのアカウ ントをサーバに登録してやればOKです。 (例では、funao74/passwordをサーバに登録する)
お礼
回答ありがとうございます! サーバへの登録はしているつもりだったのですが、なんらかの不具合があるということですね。 そこらへん確認して試してみます。 取り急ぎお礼まで。 ありがとうございます!
補足
http://www.shoeisha.com/mag/windev/pdf/870505/windev0505_135_SQLServer.pdf にあるように、 SQL Server認証でのログインを許可するように認証モードを変更するか、Windows認証でログインを試みるように接続文字列を変更すればよかったみたいで、接続文字列に"Integrated Security=SSPI"を追記したところ接続できました。 ありがとうございました。