Guten Abend,
meine Datensätze sind bestimmte Personen. In das Formular müssen also Namen eingegeben werden. Ich möchte eine Funktion erstellen, die dem Dateneingeber ermöglicht, sich zu vergewissern, ob er diese Person schon eingegeben hat.
Ich dachte an die Befehlsschaltfläche "Datensatz suchen", kenne aber den Code nicht, der bewirkt, dass explizit im Feld "Name" gesucht wird. Der Dateneingeber soll nicht extra in das entsprechende Feld klicken müssen, wie es der Fall ist, wenn ich mit dem Befehlsschaltfläche-Assistent eine Suchschaltfläche einrichte.
Ich hatte schon ein Nachschlagefeld für Name und Vorname überlegt, mache mir aber Sorgen, dass sich der Datensatz versehentlich verschiebt. Also z.B. falscher Vorname zum Namen und falsche ID-Nr (Autowert, Primärschlüssel) Vorname/Name sind allerdings indiziert......
Danke
Hallo Neuling1
Nachschlage Felder in Tabellen sind jeden Fall zu meiden. Auf dein Formular ein ungebundenes Kombifeld in dem du " Dein Datensatz suchst" Schau mal hier im Forum unter "Datensatz suchen" dort findest du einige Beispiele.
Gruß Stefan
Hat jemand ein Einsehen mit mir Laien?
Ich habe jetzt mehrere Stunden damit verbracht, nach Codes bezüglich der Datensatzsuche zu suchen. Ich bin nicht in der Lage, sie bei mir so umzusetzen, dass sie funktionieren, es gibt immer wieder Fehler.
Wahrscheinlich ist es allen Programmierern klar, wo was geändert werden muss, damit es klappt, ich komme nicht weiter. Jetzt habe ich eine Befehlsschaltfläche mit dem Code
Private Sub Suche_Click()
Dim strWert As String
strWert = InputBox("Geben Sie einen Namen ein.", "Name suchen", _
, 5800, 800)
If strWert <> "" Then
Me.Filter = "P_Name = '" & strWert & "'"
Me.FilterOn = True
Else
'MsgBox "Keine Eingabe"
End If
End Sub
und es gibt eine Fehlermeldung, es erscheint ein Dialogfeld, indem der Tabellenname und der Feldname des Primärschlüssels angezeigt wird, mit der Aufforderung nach Parameterangabe.
Klicke ich einfach auf ok, dann verschwindet die Aufforderung und manchmal wird dann auch der gesuchte Name angezeigt. aber so kann man es ja auch nicht lassen.
Ich verstehe, dass es nervt, wenn eine Frage 1000 mal gestellt wird, aber ich komme wirklich nicht voran.
Es wäre sehr nett, wenn jemand helfen will
Hallo,
"es gibt eine Fehlermeldung"
wie lautet die?
"indem der Tabellenname und der Feldname des Primärschlüssels angezeigt wird, mit der Aufforderung nach Parameterangabe."
läßt darauf schliessen, dass es dieser Feldname im Formular irgendwo verwendet wird, es diesen aber (mit dieser Schreibweise ) nicht gibt.
--> alle Steuerelement(-namen) dahingend prüfen, ob der Eintrag in deren Steuerelementinhalten mit den Namen der Felder aus der Datenherkunft übereinstimmt.
Wie lautet die Datenherkunft des Forms? Wenn es ein Abfragename ist, wie lautet dann der SQL-String dieser Abfrage?
PS: besser Fakten posten statt irgendwelche Prosa ;)
Hallo Franz,
ich werd verrückt, jetzt klappt es!!!!!!!!!!!!
Ich habe doch 1000 Versuche gestertet, unter anderem mit einem zusätzlichen ungebundenen Textfeld, das ich noch nicht gelöscht hatte! Jetzt hab ichs gelöscht und es klappt mit der Messagebox über die Befehlsschaltfläche!!!!!!!!Wahnsinn!!!!!!!!!!!!! Bin ich froo!!!!!!!!!!!!!!!!
1000 Dank für deine Antwort, man verzweifelt, wenn es einfach nicht voran geht!
Hallo Neuling 1
Wunderbar wenn wir dir helfen konnten, dann setze bitte den Beitrag auf gelöst.
Gruß Stefan
es hat leider doch nicht funktioniert. Zu früh gefreut. Ich bekomme immer noch diese Fehlermeldung. Auch setzt sich der Filter nicht allein zurück, es wird nur der gefilterte Datensatz angezeigt. Wenn ich feststelle, diesen Namen gibt es nicht in der Tabelle, möchte ich ihn eingeben, führt aber, wenn ich die Schaltfäche "neuer Datensatz" anklicke, wieder dazu, dass das Dialogfeld mit der Parameteraufforderung aufblendet.
Es existiert in meinem Formular nur eine Schaltfläche mit dem Namen "Suche". Es gibt auch nur ein Feld, das "P_Name" heißt, daran kann es auch nicht liegen. Auch nur das Feld mit dem Primärschlüssel heißt "Pat_ID". Und genau danach wird in der Parameterfrage gefragt. Ich habe mal einen Print gemacht und angehängt
[Anhang gelöscht durch Administrator]
Guten Morgen Neuling
Vorschlag: Richte ein ungebundenes Kombifeld ein im Bezug auf deine Tabelle "Mit_den_Mitarbeiter" (wie auch immer sie heißt). Danfüge beigefügten Code unter Alt+F11 dem Feldein.
Private Sub Kombinationsfeld73_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[P_Name] = " & Str(Nz(Me![Kombinationsfeld73], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Set rs = Nothing
End Sub
Der Vorteil du must nach verwendung des Filter, keinen Filter entfernen um dein Formular weiter nutzen zu können, und du siehst bei aufschlagen des Kombifeld ob dein Name schon vorhanden ist.
Gruß Stefan
Hallo Stefan,
ganz herzlichen Dank,
Problem ist gelöst!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Heidi