eine Frage: Kann man Recordsets nicht an eine Funktion übergeben?
Habe folgende Funktion zur Ausgabe eines beliebigen Recordsets:
Function PrintRS(rs As Recordset)
Dim f As Field
Dim i As Integer
For Each f In rs.Fields
Debug.Print f.Name,
Next f
Debug.Print
Do Until rs.EOF
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i),
Next i
Debug.Print
rs.MoveNext
Loop
End Function
Ich übergeben innerhalb des gleichen Moduls via "PrintRS (rs1)" ein
Recordset und bekomme:
Laufzeitfehler 13: Typen unverträglich
An der Stelle scheint sich das Brett vor dem Kopf zu befinden....
Vielleicht weiß ja jemand Rat.
Thomas
> Habe folgende Funktion zur Ausgabe eines beliebigen Recordsets:
>
> Function PrintRS(rs As Recordset)
> Dim f As Field
> Dim i As Integer
> For Each f In rs.Fields
> Debug.Print f.Name,
> Next f
> Debug.Print
> Do Until rs.EOF
> For i = 0 To rs.Fields.Count - 1
> Debug.Print rs.Fields(i),
> Next i
> Debug.Print
> rs.MoveNext
> Loop
> End Function
>
> Ich übergeben innerhalb des gleichen Moduls via "PrintRS (rs1)" ein
> Recordset und bekomme:
> Laufzeitfehler 13: Typen unverträglich
>
> An der Stelle scheint sich das Brett vor dem Kopf zu befinden....
"PrintRS" ist in Ordnung, übergeordnete Funktion posten (Deklaration
von "rs1"?).
mfg,
Jan
> Function PrintRS(rs As Recordset)
...
> End Function
>
> Ich übergeben innerhalb des gleichen Moduls via "PrintRS (rs1)" ein
> Recordset und bekomme:
> Laufzeitfehler 13: Typen unverträglich
was genau schreibst Du im Code?
PrintRS (rs1)
oder
PrintRS rs1
oder auch
Call PrintRS (rs1)
Ich meine, dass der Aufruf 1 nicht funktionert, 2 und 3 jedoch schon.
Außerdem würde ich PrintRS nicht als Function deklarieren, sondern als
Sub, weil ja keine Rückgabewerte geliefert werden (es sei denn, Du
hast uns was verschwiegen).
Viele Grüße,
Sascha Wostmann
--
wichtige Informationsquellen zu Access: +----------------------
http://www.donkarl.com/ (FAQ) | Bitte keine Kopien
http://www.freeaccess.de/ (KnowHow) | oder Access-Anfragen
http://www.google.de/ (Suchmaschine) | per E-Mail.
> Function PrintRS(rs As Recordset)
...
> Ich übergeben innerhalb des gleichen Moduls via "PrintRS (rs1)" ein
> Recordset und bekomme:
> Laufzeitfehler 13: Typen unverträglich
könnte evtl. auch mit folgendem zu tun haben:
wenn der Rückgabewert der Funktion nicht benutzt wird, erwartet Access die
Parameterliste ohne Klammerung.
Deine Klammerung wird dann als 'geklammerter Parameter' interpretiert
(glaub' mal, selten benutztes Feature), was eine Übergabe 'by value' statt
'by reference' bewirkt - deshalb macht er auch das Leerzeichen zwischen
Funktionsnamen und Parameter.
Mach 'ne Sub draus, oder lass mal die Klammern beim Aufruf weg, oder mach
den Aufruf der Funktion mit Call (dann will er wieder Klammern), vielleicht
gehts dann.
Ein Versuch meinerseits mit Recordsets ergab zwar keine Probs, aber ich
hatte damit auf jeden Fall schon welche.
Gruss,
Juergen