Ich erhalte den Fehler - ADODB.Recordset: Der Vorgang ist nicht erlaubt, wenn das Objekt geschlossen wird. bei Verwendung einer SQL-Anweisung für mehrere Tabellen.ADODB.Recordset: Der Vorgang ist nicht erlaubt, wenn das Objekt geschlossen wird
andere SQL-Anweisungen (einfache) Ich nicht erhalten und Fehler, und ich habe die SQL-Anweisung in Abfrage kopiert, um zu überprüfen, es funktioniert in MSSQL von ausgedruckten SQL-Variable - und es gibt Werte zurück.
Methode
sql = "SET NOCOUNT ON;SET ANSI_WARNINGS OFF;use dbcheck; " &_
"select year([00080020]) as YEAR, month([00080020]) as MONTH,sum(bytesize/1024/1024/1024) as GBStored, count(distinct [0020000d]) " &_
" as FinalCount from tblt t, tbls s, tblf f where" &_
" id1 = _id1 and id2 = _id2file" &_
" and [00080020] is not null" &_
" group by year([00080020]), month([00080020]) order by year([00080020]) desc, month([00080020]) desc"
Dim cndb : Set cndb = CreateObject("ADODB.Connection")
Dim rsdb: Set rsdb = CreateObject("ADODB.Recordset")
cndb.Provider = "sqloledb"
cndb.Properties("Data Source").Value = "127.0.0.1"
cndb.Properties("Initial Catalog").Value = "master"
cndb.Properties("Integrated Security").Value = "SSPI"
cndb.CursorLocation = 3
cndb.Open
set rsdb = CreateObject ("ADODB.Recordset")
cmd.ActiveConnection = cndb
cmd.CommandType = 1
cmd.CommandText = sql
rsdb.CursorLocation = 3
rsdb.CursorType = 3
rsdb.LockType = 3
Set rsdb = cmd.Execute
IF Not (rsdb IS Nothing) Then
rsdb.MoveFirst ** ERRORS OUT HERE
Dank -------- 2. Versuch SQL gleiche
Dim cndb : Set cndb = CreateObject("ADODB.Connection")
Dim rsdb: Set rsdb = CreateObject("ADODB.Recordset")
cndb.Provider = "sqloledb"
' Set SQLOLEDB connection properties.
cndb.Properties("Data Source").Value = "127.0.0.1"
cndb.Properties("Initial Catalog").Value = "master"
' Windows NT authentication.
cndb.Properties("Integrated Security").Value = "SSPI"
cndb.CommandTimeout=900
cndb.CursorLocation = 3
cndb.Open
rsdb.CursorLocation = 3
rsdb.CursorType = 3
rsdb.LockType = 3
rsdb.Open sql,cndb
rptFile.WriteLine sql
rptFile.WriteLine cndb.State
rptFile.WriteLine rsdb.State
IF Not (rsdb IS Nothing) Then
If Not rsdb.EOF Then * Errors out on this line
rsdb.MoveFirst
haben Sie rsb.open ausprobiert? –
Sollte nicht die 'ActiveConnection' * gesetzt sein, da es sich um eine Objektreferenz handelt? 'Set cmd.ActiveConnection = cndb' –
Ich begann mit rsdb.open und spielte mit anderen Methoden. Ich änderte es mit demselben Problem zurück. Ich habe auch die cmd.ActiveConnection ohne Glück ausprobiert. Schätze die Ideen, um es zu versuchen. – Rick