この構文を使用してExcel 2013からSQL Server 2008ストアドプロシージャを実行しています。すべてが1台のPC上で実行されるように実行されますが、2台目のPCで実行すると、SQLクエリをVBAから実行
OLEDB接続エラー
私は任意のPC上でのOAヒッチ/ wのサーバー名、ユーザー名、およびパスワード構文の実行をハードコーディングしていますので、べきではないのですか?
Function RunSQLServerProc()
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset
con.Open "Provider=SQLOLEDB;Data Source=Server;Initial Catalog=Database;User Id=userid;Password=password;Integrated Security=SSPI;Trusted_Connection=Yes;"
cmd.ActiveConnection = con
cmd.CommandText = "TestProc"
Set rs = cmd.Execute(, , adCmdStoredProc)
End Function
これは実際に実行されますか?私はあなたがコマンドへの接続をどこに割り当てているのか分かりません。また、ユーザIDとパスワードを 'Integrated Security = SSPI'で提供することは矛盾しています。確かにそれはエラーメッセージ全体ではありません。 –
@PaulAbbott - 申し訳ありませんが、コピー/貼り付けエラーです。私はcmd.ActiveConnection = con ....で追加しました。私は、ワークブックを開くユーザーがSQL Serverへの接続を実行できるようにしたいと思っています。それに関係なく、コンピュータは開かれています。 –
SQLユーザー名とパスワードまたは現在のWindowsログインで認証しようとしていますか? –