Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

A97: Recordset an Funktion übergeben

198 views
Skip to first unread message

Thomas Göbel

unread,
Sep 3, 2002, 2:57:36 AM9/3/02
to
Hallo,

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

Jan Krischker

unread,
Sep 4, 2002, 10:55:23 AM9/4/02
to
Hallo,


> 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

Sascha Wostmann

unread,
Sep 4, 2002, 5:20:01 PM9/4/02
to
Thomas Göbel :

> 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.

Juergen Frieling

unread,
Sep 5, 2002, 2:54:16 AM9/5/02
to
Moin,

> 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

0 new messages