3

以下のコードを使用してExcelのSQLServerでレコードセットを開こうとしていますが、3709 - The connection cannot be used to perform this operation. It is either closed or invalid in this context.エラーが発生します。どこが間違っているのですか?:

編集:

現在は機能しています。以下のコードを更新します。

'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Driver={SQL Server};Server=SERVER\SERVER; Database=we_ci_db; Trusted_Connection=Yes"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select * from tblUsers"

'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
4

2 に答える 2

2

Remouは私を別の接続文字列の方向に向けましたが、それでも同じ結果が得られました。私は少しググって、別の実装を持つ別のSO質問リンクを思いつきました。その結果、次のようになりました。

'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Driver={SQL Server};Server=SERVER\SERVER; Database=we_ci_db; Trusted_Connection=Yes"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select * from tblUsers"

'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
于 2012-08-13T14:44:04.387 に答える
0

それはあなたが必要とする接続文字列ではありません。次のようになります。

Provider=sqloledb;Data Source=SERVER\SERVER;Initial Catalog=cs_db;Integrated Security=SSPI;

http://connectionstrings.comを参照してください

于 2012-08-08T16:23:16.323 に答える