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 zwei Vorgehensweisen:

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

Der Suchbegriff wird dabei vorzugsweise in ein ungebundenes Textfeld eingegeben,
und der Code für die Suche bzw. Filterung z.B. über eine Schaltfläche ausgelöst.

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 (alle Nachnamen, die 'Muster' enthalten)
   Me.Nachname.SetFocus
   DoCmd.FindRecord "Muster", 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":

   With Me.RecordsetClone
      .FindFirst "Nachname = 'Mustermann'"
 
      'alternativ mit Platzhaltern suchen
      'rs.FindFirst "Nachname Like 'Muster*'"
 
      'wenn der Suchbegriff nicht gefunden wird
      If .NoMatch Then
         MsgBox "Suchbegriff nicht gefunden."
 
      'ansonsten erstes gefundenes Feld markieren
      Else
         Me.Bookmark = .Bookmark
         Me.Nachname.SetFocus
      End If
   End With
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 'Muster*'"
 
   '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.


Wikilinks