Supportnet / Forum / Datenbanken
Suchfunktion ACCESS HILFE!!!
Frage
Hallo!
In meiner Datenbank habe ich für das Hauptformular eine Suchfunktion eingebaut, die nahezu alle Felder durchsucht.
Funktioniert soweit gut - allerdings: wenn kein Datensatz gefunden wird, wird ein neuer angelegt und die Datenbank bläht sich mit leeren Datensätzen auf.
Hier ist der Code:
Private Sub suchbutt_Click()
Dim sSQL As String
sSQL = "SELECT * FROM [kundendaten] "
sSQL = sSQL & " WHERE [winkhausKdnr] LIKE ´*" & suche & "*´ OR [herstellerZW1] LIKE ´*" & suche & "*´ OR ...usw.
Me.RecordSource = sSQL
suche.SetFocus
End Sub
Kennt jemand die Lösung, dass bei "Nichtgefunden" kein neuer Datensatz entsteht?
Vielen Dank.
Antwort 1 von Teddy7
Falsche Technik !
Üblicherweise zeigt man die Treffer in einem Endlosformular an.
Die Selektion gibt man dabei beim Öffnen des Formulars mit.
Gruß
Teddy
Üblicherweise zeigt man die Treffer in einem Endlosformular an.
Die Selektion gibt man dabei beim Öffnen des Formulars mit.
Gruß
Teddy
Antwort 2 von yuna
Hallo,
Hier eine kurze Anleitung:
Unter Formular -> Eingenschaften -> Format -> Standardansicht wird "Endlosformular" eingestellt.
Unter Daten Formular -> Eigenschaften->Datenherkunft = "Kundendaten"
Der Code sieht dann so aus:
Private Sub suchbutt_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "FormularName"
stLinkCriteria = "[herstellerZW1]=" & "´" & Me![Suche] & "´"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
Mit dem Click auf den Button wird Dein Formular nocheinmal , unter Verwendung eines Filters geöffnet. Die Filter Bedingung wird in der String Variable stLinkCriteria gespeichert. Ein Filter ist ähnlich wie eine SQL Anweisung aufgebaut. Es fehlt jedoch das "Where". Ob Dinge wie Like erlaubt sind weiß ich nicht. Das musst du ausprobieren.
Hier eine kurze Anleitung:
Unter Formular -> Eingenschaften -> Format -> Standardansicht wird "Endlosformular" eingestellt.
Unter Daten Formular -> Eigenschaften->Datenherkunft = "Kundendaten"
Der Code sieht dann so aus:
Private Sub suchbutt_Click()
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "FormularName"
stLinkCriteria = "[herstellerZW1]=" & "´" & Me![Suche] & "´"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End Sub
Mit dem Click auf den Button wird Dein Formular nocheinmal , unter Verwendung eines Filters geöffnet. Die Filter Bedingung wird in der String Variable stLinkCriteria gespeichert. Ein Filter ist ähnlich wie eine SQL Anweisung aufgebaut. Es fehlt jedoch das "Where". Ob Dinge wie Like erlaubt sind weiß ich nicht. Das musst du ausprobieren.
Antwort 3 von Lemmy0512
Vielen Dank - das Problem wurde mit Eurer Hilfe gelöst!!!

