Recordset in Funktion: kann rs!zeichen durch Variable ersetzt werden?

08/11/2009 - 17:40 von Stefan Paesch | Report spam
Moin zusammen,

ich möchte ein Textfeld um bestimmte Zeichen bereinigen. Diesse
Zeichen stehen in einer Tabelle: tbl_Zeichen.
z.B. aus Gebühren005.50Euro sollen 005.58 werden um mit Val()
Schlußendlich 5,58 zu erhalten.

Als reine Sub funktioniert das wie ich mir das vorstelle:

...
Do Until rs.EOF = True
Me.TxtEingabe = Trim(Replace(Me.TxtEingabe, rs!
zeichen, ""))
rs.MoveNext
Loop


Nur als Funktion (Funktion: wegen der Flexibilitàt) habe ich zwei
Probleme:

1. rs!Feldname - wird nicht in der Auflistung gefunden (Tabellename tbl_Zeichen, Feldname = Zeichen)
in der Variablenzuweisung wird Feldname "Zeichen" zugewiesen
Das ist offensichtlich für VBA unverstàndlich. Wie kann man so etwas
abbilden?

2. wenn ich rs!Feldname durch rs!Zeichen ersetze, làuft der Code
durch ... nur das Textfeld ist dann leer.
Wie gesagt, als Sub funktioniert es - da mach ich doch dicke Backen
und frag mich warum?

Public Function fZeichenLoeschen(Tabelle As String, Feldname As
String, Textfeld As String)

Dim db As DAO.Database, rs As DAO.Recordset2
Set db = CurrentDb
Set rs = db.OpenRecordset(Tabelle, dbOpenDynaset)

Do Until rs.EOF = True
Textfeld = Trim(Replace(Textfeld, rs!Feldname, ""))
rs.MoveNext
Loop

End Function

Hat jemand dazu Erklàrungen/Verbesserungen?

Viele Grüße und vielen Dank Stefan.
 

Lesen sie die antworten

#1 Thomas Möller
08/11/2009 - 19:16 | Warnen spam
Hallo Stefan,

Stefan Paesch schrieb:
Public Function fZeichenLoeschen(Tabelle As String, Feldname As
String, Textfeld As String)

Dim db As DAO.Database, rs As DAO.Recordset2
Set db = CurrentDb
Set rs = db.OpenRecordset(Tabelle, dbOpenDynaset)

Do Until rs.EOF = True
Textfeld = Trim(Replace(Textfeld, rs!Feldname, ""))
rs.MoveNext
Loop

End Function



probier's mal so:

Textfeld = Trim(Replace(Me(Textfeld), rs(Feldname), ""))


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen