Access Anfänger: Datensatz suchen oder Datensätze filtern im Endlosformular

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Um nach bestimmten Werten in einem Endlosformular zu suchen, gibt es

  • die Suche nach einem Datensatz, oder
  • die Filterung des Formulars nach den gewünschten Kriterien.

Datensatz suchen (1)

mit der FindRecord-Methode des DoCmd-Objekts

Beispiel:
Suche nach "Mustermann" im Feld "Nachname":

Me!Nachname.SetFocus
DoCmd.FindRecord "Mustermann"
 
'alternativ: mit Platzhaltern suchen
'DoCmd.FindRecord "Mustermann", acAnywhere
Wiki hinweis.png

Hinweise: Zu weiteren Parametern siehe die Access-Hilfe zur DoCmd.FindRecord-Methode.
Wenn der erste Suchbegriff gefunden wird, wird er markiert.
Wenn der Suchbegriff nicht gefunden wird, bleibt der Cursor auf dem aktuellen Datensatz stehen.
Die FindRecord-Methode bringt daher keine direkte Rückmeldung, ob der Suchbegriff gefunden wurde oder nicht.


Datensatz suchen (2)

mit der FindFirst-Methode des RecordsetClone-Objekts

Beispiel:
Suche nach "Mustermann" im Feld "Nachname":

 Dim rs As DAO.Recordset
 
 Set rs = Me.RecordsetClone
 
 rs.FindFirst "Nachname = 'Mustermann'"
 
 'alternativ mit Platzhaltern suchen
 'rs.FindFirst "Nachname Like '*Mustermann*'"
 
 'wenn der Suchbegriff nicht gefunden wird
 If rs.NoMatch Then
   MsgBox "Suchbegriff nicht gefunden."
 
 'ansonsten erstes gefundenes Feld markieren
 Else
   Me.Bookmark = rs.Bookmark
   Me.Nachname.SetFocus
 End If
 
 ' rs schließen und Arbeitsspeicher freigeben
 If Not rs Is Nothing Then rs.Close: Set rs = Nothing
Wiki hinweis.png

Hinweis: Wenn der erste Suchbegriff gefunden wird, wird er markiert.
Wenn der Suchbegriff nicht gefunden wird, kann eine Meldung ausgegeben werden.


Datensätze filtern

Beispiel:
Das Feld "Nachname" nach "Mustermann" filtern:

 Me.Filter = "Nachname = 'Mustermann'"
 
 'alternativ mit Platzhaltern filtern
 'Me.Filter = "Nachname Like '*Mustermann*'"
 
 'Filter aktivieren 
 Me.FilterOn = True

Filter wieder herausnehmen und alle Datensätze anzeigen:

 Me.FilterOn = False
Wiki hinweis.png

Hinweis: Im Gegensatz zum "Datensatz suchen", bei dem immer nur maximal ein übereinstimmender Datensatz gefunden wird, werden bei der Filterung alle Datensätze angezeigt, die mit dem Suchkriterium übereinstimmen.

Wiki warning.png Wichtig für Programmierer: Wenn man bei aktiviertem Filter von der Formularansicht in die Entwurfsansicht des Formulars wechselt, wird der Filter fest im Formular gespeichert, und kann nur im Entwurfsmodus wieder gelöscht werden!