Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Paule am April 04, 2016, 15:14:50

Titel: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: Paule am April 04, 2016, 15:14:50
Hallo,

ich habe ein Formular zum Hinzufügen von neuen Kunden.
Unter anderem gebe ich dort den Namen des Kunden ein und bekomme die CustomerID als PK und AutoWert.
Dieses Formular heißt "SA_CustomerF".
Nun möchte ich im Formularkopf ein Textfeld einfügen "txtSearchCustomerID".
In dieses möchte ich dann eine Kundennummer eingeben. Mit dieser Kundennummer soll er dann zu diesem Datensatz im Formular springen.

Dies müsste ich dann wohl mit dem Ereignis "Nach Aktualisierung" bei dem Textfeld realisieren?

Wie müsste denn der Code aussehen?

Das entsprechende Feld heißt "txtCustomerID". Darauf muss sich dann das "Such-Textfeld" im Formularkopf ("txtSearchCustomerID") beziehen.

Könnt ihr mir weiterhelfen?

Grüße,
Marcus
Titel: Re: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: MaggieMay am April 04, 2016, 15:55:29
Hallo,

mit einem Kombifeld, das die tatsächlich vorhandenen IDs zur Auswahl anbietet, ginge das komfortabler.

Allerdings frage ich mich gerade, wozu man in einem Erfassungsformular eine Suchfunktion braucht:
Zitatich habe ein Formular zum Hinzufügen von neuen Kunden.
;)

Aber wie auch immer, so sollte das wohl funktionieren:
Me.Recordset.FindFirst "txtCustomerID = '" & Me!txtSearchCustomerID & "'"
sofern "txtCustomerID" der Name des zu durchsuchenden Datenfeldes ist.
Handelt es sich um eine Zahl, lässt du die Hochkommata weg.
Titel: Re: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: Paule am April 05, 2016, 10:09:22
Ja, ich weiß, es ist etwas ungewöhnlich, aber mir hilft es beim Bearbeiten von Kundendaten perspektivisch sehr weiter.

Jedenfalls hat das wunderbar geklappt. DANKE!

Ich habe jetzt noch eine Erweiterung gemacht, sodass ich auch noch ein Textfeld hinzugefügt habe, mit dem ich nach dem Namen suchen kann.

Der Code dafür sieht so aus:

Private Sub SearchCustomerName_AfterUpdate()
Me.Recordset.FindFirst "CustomerName = '" & Me!SearchCustomerName & "'"
End Sub


Auch das klappt, sofern ich den kompletten Namen des Kunden richtig eingebe.
Was würde eigentlich passieren, wenn ich zwei Kunden mit demselben Namen habe?
Titel: Re: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: MaggieMay am April 05, 2016, 10:24:09
Hi,

wenn es mehr als einen Kunden mit demselben Namen gibt, wird der erste davon angezeigt. Mit .FindNext könnte dann weitergesucht werden.
Titel: Re: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: MzKlMu am April 05, 2016, 10:43:35
Hallo,
ZitatWas würde eigentlich passieren, wenn ich zwei Kunden mit demselben Namen habe?
dann muss sich aber mindestens der Primärschlüssel unterscheiden.
In einem solchen Fall verwendet man auch nicht ein Textfeld zur Suche, sondern ein Kombinationsfeld das alle Kunden zur Auswahl anbietet (wie bereits vorgeschlagen). Ein Kombi schließt auch Tippfehler aus.
Und dann erfolgt die Suche nie über den Namen, sondern über den Primärschlüssel. Den man aber nicht kennen muss. Der PS wird im Kombi ausgeblendet und der Name angezeigt über den man auch sucht. Aber im Hintergrund wird der PS verwendet.
Titel: Re: Über Textfeld im Formularkopf zu Datensatz springen
Beitrag von: Paule am April 05, 2016, 11:33:29
Alles klar, vielen Dank!
Ich werde es erstmal bei der Suche nach dem PK belassen.
DIe Kunden bzw. Vertragsnummer hat der Kunde und damit kann ich dann auch einfach suchen.

Ganz vielen Dank nochmal.  :)