こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

●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

投稿日時 - 2010-07-20 16:31:14

QNo.6051679

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

「理由:SQL Serverの信頼関係接続に関連付けられていません」
ということですので。
Excelでアクセスをしに行くPCが、サーバに対しWindows統合認証が
通っていないということになります。

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

投稿日時 - 2010-07-20 17:36:25

補足

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

投稿日時 - 2010-07-29 17:38:40

お礼

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

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

投稿日時 - 2010-07-20 17:45:34

あなたにオススメの質問