Wenn man ein Recordset mit der Methode Open öffen will, so muß man zuerst das Recordset anlegen. In dieser Form liefert das nachfolgende Skript einen Fehler:
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=dn2"
strQ = "SELECT * FROM table1"
rs.Open strQ
...
Der Grund liegt darin, daß in der letzen Zeile die Variable rs noch gar kein Recordset ist, und daher auch keine Methode Open hat, die man ausführen könnte. Wie erklärt man aber dem Skript, daß die Variable rs ein Recordset ist? Man geht analog zur Connection vor und deklariert das Recordset mit CreateObject:
Set rs = Server.CreateObject("ADODB.RecordSet")
Dies muß natürlich vor dem Öffnen geschehen.
Somit lautet das korrigierte Skript:
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=dn2"
strQ = "SELECT * FROM table1"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open strQ
...
rs.Close
Set rs = Nothing
conn.close
Set conn = Nothing
Kleine Anmerkung: Man sollte jedes Recordset und jede Connection die man öffnet auch wieder schließen. Das beugt unangenehmen Nebenerscheinungen vor wie zum Beispiel Geschwindigkeitsverluste, Fehlermeldungen über zu viele geöffnete Connections und Ähnliches.