Fehlermeldung "Element in dieser Auflistung nicht gefunden"

15/11/2009 - 16:18 von Marion Hildebrandt | Report spam
Hallo alle zusammen,

Darf ich bitte nochmal nerven! Ich habe hier noch ein kleines Problem.
Aus verschiedenen Gründen benötige ich in manchen Fàllen den letzten
tatsàchlichen Datensatz aus der Tabelle und nicht aus der sortierten und
gefilterten Abfrage des Formulars. Folgende Funktion habe ich in einem
Standardmodul hinterlegt, bei dessen Ausführung die Fehlermeldung „Element in
dieser Auflistung nicht gefunden“ ausgegeben wird.

Function RecLastUnfiltered(Tablename As String, Fieldname As String, F As
Form)

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSqlLast As String
Set db = CurrentDb
strSqlLast = "SELECT * FROM " & Tablename
Set rs = db.OpenRecordset(strSqlLast)
If Not rs.EOF Then rs.MoveLast
F.Filter = Fieldname & " = " & rs!Fieldname
rs.Close
Set rs = Nothing
F.FilterOn = True

End Function

Aufgerufen wird diese Funktion über folgende Sub im Formularmodul:

Private Sub cmdRecLastUnfiltered_Click()
RecLastUnfiltered "tblAdresse", "IDADresse", Forms!frmUebergabeAdresse
End Sub

Der Fehler liegt in Zeile: F.Filter = Fieldname & " = " & rs!Fieldname.
Ich nehme an, weil Fieldname als String übergeben wird. Denn wenn ich statt
dessen F.Filter = Fieldname & " = " & rs!IDADresse eingebe, funktioniert der
Code. Was muss ich àndern?

Ich verwende: Office 2007, Vista

Viele Grüße aus Hamburg
Marion
 

Lesen sie die antworten

#1 Peter Doering
15/11/2009 - 16:35 | Warnen spam
Hallo,

Marion Hildebrandt wrote:

Aus verschiedenen Gründen benötige ich in manchen Fàllen den letzten
tatsàchlichen Datensatz aus der Tabelle und nicht aus der sortierten und
gefilterten Abfrage des Formulars. Folgende Funktion habe ich in einem
Standardmodul hinterlegt, bei dessen Ausführung die Fehlermeldung „Element in
dieser Auflistung nicht gefunden“ ausgegeben wird.

Function RecLastUnfiltered(Tablename As String, Fieldname As String, F As
Form)

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSqlLast As String
Set db = CurrentDb
strSqlLast = "SELECT * FROM " & Tablename
Set rs = db.OpenRecordset(strSqlLast)
If Not rs.EOF Then rs.MoveLast
F.Filter = Fieldname & " = " & rs!Fieldname



F.Filter = Fieldname & " = " & rs.Fields(Fieldname)

rs.Close
Set rs = Nothing
F.FilterOn = True

End Function



Sollte sich Fieldname auf ein Textfeld beziehen, muss der Wert in Quotes
eingeschlossen werden:

F.Filter = Fieldname & " = '" & rs.Fields(Fieldname) & "'"

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen