Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Suchen in Access





Frage

Hallo zusammen habe eine Datenbank erstellt, in welcher ich aus dem Formular heraus eine Suche absetzen kann: Private Sub Bezeichnung_d_m_DblClick(Cancel As Integer) Dim strText As String strText = InputBox("Text eingeben", "Suche in Feld Ist-Beschreibung") If strText <> "" Then Me.Filter = "Bezeichnung_d_m LIKE '*" & strText & "*'" Me.FilterOn = True End If End Sub Diese funktioniert ausgezeichnet, solange der Suchbegriff gefunden wird. Wenn kein Datensatz mit dem Suchbegriff gefunden wird, erscheint das Formular ohne Felder (Leer) und die Datensätze werden erst wieder angezeigt, wenn ich den Filter entferne. Wäre doch schöne, wenn stattdessen eine Meldung erscheinen würde, dass der Suchbegriff nicht gefunden wurde und das Formular im Ursprungszustand angezeigt würde. Ich zerreiss mir noch was beim Suchen nach der Lösung. Kann mir jemand auf die Sprünge helfen? Besten Dank ...

Antwort 1 von Phantom_Fies

Hast du denn keinen Button eingebaut, der das Filtern wieder rückgängig macht?

Du könntest dir mit dem Trick helfen, dass du die Filterung durch Doppelklick realisierst, und zwar direkt in einem Datenfeld, ohne Suchbegriffeingabe. Wenn in dem Feld dann keine Daten stehen, filtert ja auch keiner danach.
Du musst dann nur den Wert des Feldes auslesen und als Filterbedingung verwenden.


Antwort 2 von JohnnyLoser

Hi burny,

ich würde die Prozedur wie folgt abändern:


Private Sub Bezeichnung_d_m_DblClick(Cancel As Integer)
On Error Goto bdm_err
Dim strText As String, OldFilter As String
OldFilter = Me.Filter
strText = InputBox("Text eingeben", "Suche in Feld Ist-Beschreibung")
If strText <> "" Then
  Me.Filter = "Bezeichnung_d_m LIKE '*" & strText & "*'"
  Me.FilterOn = True
End If
strText = Me.Bookmark
Exit Sub
bdm_err:
Select Case Err
  Case 3021
    Me.Filter = OldFilter
    Me.FilterOn = True
  Case Else
    MsgBox Str(Err) & " " & Error
End Select
Resume Next
End Sub


Funzt!

Vielleicht gibt's bessere Lösungen, aber mir fällt keine ein.

Gruß

Johnny

Antwort 3 von burny

Danke für deine Antwort ... hab's so abgeändert. Fuktioniert alles einwandfrei - nur - es erscheint keine Msg-Box wenn ein Begriff nicht gefunden wird. Was hab ich nun wieder falsch gemacht

Antwort 4 von burny

Danke für deine Antwort Phantom ....
Ich hab einen Button, welche den Filter Rückgängig macht.
Ledier kann ich deinen Vorschlag so nicht umsetzen - ich starte den Filter, indem ich auf das Feld doppelklicke und den Suchbegriff in eine "Suchmaske" eingebe ...

Antwort 5 von burny

Hei JohnnyLoser
ich habs geschafft, habe den Code so abgeändert:

Private Sub Bezeichnung_d_m_DblClick(Cancel As Integer)
On Error GoTo bdm_err
Dim strText As String

strText = InputBox("Text eingeben", "Suche im Feld Bezeichnung")

If strText <> "" Then
Me.Filter = "Bezeichnung_d_m LIKE '*" & strText & "*'"
Me.FilterOn = True
End If

strText = Me.Bookmark

Exit Sub
bdm_err:
Select Case Err
Case 3021
Me.FilterOn = False
MsgBox "Leider kein Datensatz mit diesem Suchbegriff gefunden"
End Select

Resume Next

End Sub


Jetzt funktioniert alles so wie ich es mir eigentlich vorgestellt habe! Der Filter wird gelöscht und es werden wieder alle Datensätze angezeigt. Gleichzeitig erscheint die Msg-Box!

Danke für die tolle Hilfe

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: