ME.recordsetclone?

30/07/2008 - 14:50 von Karsten Müller | Report spam
Hallo,
ME.recordsetclone làuft auf einen fehler und ich versteh nicht warum.
Vielleicht könnt ihr ja ein wenig Licht in das Dunkel meines Gehirns bringen.

Ausgangssituation:
Endlosformular
sSQL = SQL-Abfragestring

Dim rst As New ADODB.Recordset
Dim cmd as New ADODB.Command
Dim conn as ADODB.Connection

Set cmd.ActiveConnection = conn
cmd.CommandText = (sSQL)

rst.Open cmd, , adOpenStatic
Set ME.Recordset = rst

rst.Close
cmd.Cancel
Set rst = Nothing

Neues Modul:
Dim rst As New ADODB.Recordset

set rst = ME.RecordsetClone
rst.MoveFirst
...
rst.close

Das funktioniert auch alles wunderbar.
Jetzt möchte ich aber als Datenquelle kein Recordset mehr erstellen und als
Datenquelle verwenden sondern den sSQL direkt als Datenquelle nutzen

ME.Recordsource = sSQL

das funktioniert auch noch.

Dim rst as New DAO.Recordset
Set rst = ME.RecordsetClone
=> funktioniert

Dim rst as Recordset
Set rst = ME.RecordsetClone
=> funktioniert

Dim rst As New ADODB.Recordset
set rst = ME.Recordsetclone
=>Fehler - "Typen unvertràglich"

ADO und DAO Verweise sind beide gesetzt. (ADO vor DAO)

Ich verstehe nicht, warum das nicht mit ADO funktioniert.
Ich vermute, dass beim setzen der Datenquelle das Form so tut als wàre es DAO.
Aber, wenn es so ist, wie kann man das umgehen?
Oder geht das gar nicht?
Ich hab aber wenig Lust jetzt alles auf DAO zu àndern

Achso, Access 2003, Windows XP SP2

Vielen Dank,
Karsten
 

Lesen sie die antworten

#1 Josef Poetzl
30/07/2008 - 15:10 | Warnen spam
Hallo!

Karsten Müller schrieb:
[...]
Jetzt möchte ich aber als Datenquelle kein Recordset mehr erstellen und als
Datenquelle verwenden sondern den sSQL direkt als Datenquelle nutzen

ME.Recordsource = sSQL


[...]
Dim rst As New ADODB.Recordset
set rst = ME.Recordsetclone
=>Fehler - "Typen unvertràglich"

ADO und DAO Verweise sind beide gesetzt. (ADO vor DAO)

Ich verstehe nicht, warum das nicht mit ADO funktioniert.
Ich vermute, dass beim setzen der Datenquelle das Form so tut als wàre es DAO.
Aber, wenn es so ist, wie kann man das umgehen?
Oder geht das gar nicht?
Ich hab aber wenig Lust jetzt alles auf DAO zu àndern



... was du aber mit der Zeile
| Me.Recordsource = sSQL
gemacht hast.

Sobald du Recordsource einstellst, erhàltst du über die Eigenschaft
Recordset oder RecordsetClone ein DAO.Recordset zurück.


Was mich allerdings etwas überrascht:
Dim rst as Recordset
Set rst = ME.RecordsetClone
=> funktioniert


+
ADO und DAO Verweise sind beide gesetzt. (ADO vor DAO)



Ich hàtte in diesem Fall angenommen, dass der Verweis auf DAO vor ADO
ist.


mfg
Josef


EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/

Ähnliche fragen