Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Suchen und ggf übernehmen von DS - nicht nach PS suchen

Begonnen von Neuling1, März 19, 2014, 13:04:35

⏪ vorheriges - nächstes ⏩

Neuling1

Form_K ( z.B. Kunden) hat U_Fo_A (z.B. Lieferanten). Hier werden deren Namen und Adressen eingegeben, PK ist Autowert.Wie kann man im Form_K, neben dem U_Fo eine Suchmöglichkeit einrichten, die
1. prüft, ob der aktuell einzugebende Lieferant, z.B. "Meier, Karl" schon in Tab_A steht  (Angezeigt werden soll L_Name, L_Vorname, L_Nr)
2. ist der Name schon drin, diese L_Nr zu dem aktuellen Kunden zuordnet, also ins U_Fo_A, Form_K und somit in die Tab_A und Tab_K
3. Existiert der Lieferant noch nicht, möchte ich ihn eingeben können ins U_Fo_A, also ein neuer Autowert erzeugt, ein neuer DS angelegt werden

Vielen Dank für eure Hilfe
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

database

Du könntest die L-Nummer im UFo in einem Kombifeld darstellen - besonders dann, wenn ein Lieferant NUR eine einzige Lieferantennummer haben KANN.
Mittels des Ereignisses 'Bei NichtInListe' kannst du einen neuen Datensatz erzeugen.

Siehe dazu in der OH und hier ... http://support.microsoft.com/kb/197526/de

und http://www.donkarl.com?FAQ4.13

Neuling1

danke, ich versuchs mal. Das größte Problem, scheint mir, dass ich nicht nach der
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

Neuling1

dass ich nicht nach der Nr suchen möchte, die Primärschlüssel ist, sondern nach Vor und Nachnamen des Lieferanten, die keine Verknüpfung zum Hauptformular haben. Es kommen täglich "Kunden" neu in die Datenbank, die können, müssen aber nicht, einen schon bekannten "Lieferanten" haben. Aso können auch immer wieder neue "Lieferanten" dazu kommen. Die ganzen Nummern kann sich keiner merken, daher möchte ich zunächst nach Nachname und Vorname suchen. Gibt es den "Lieferanten", dann hat er einen Datensatz mit Nr. Mit diesem angewählten Datensatz soll sich durch die Anwahl meiner Vorstellung nach, dann das Formular Lieferanten füllen. Gibt es den Lieferanten noch nicht, möchte ich ihn natürlich eingeben.
Ich hatte schon ein Dropdown Feld, um zu suchen, doch dauert es einfach zu lange
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

database

Hallo,

ich war der Annahme, dass die LieferantenNummer (L_Nr) eine frei vergebene Nummer ist ... OK,
dann lässt sich das auch mit den Namen lösen.

in der Datenherkunft für das Kombifeld fasst du in dem Fall Nachname und Vorname sowie die Lieferantennummer zusammen ...
In etwa so:

SELECT L_Name & ", " & L_Vorname & ", " & L_Nr FROM Tab_A Order By L_Name

Beim Kombi ist 'Autovervollständigen' einzustellen damit beim Eingeben des Namens automatisch nach Entsprechungen gesucht und diese auch angezeigt werden.
Über das Ereignis 'Bei NichtInListe' das eintreten wird, wenn keine Entsprechung gefunden wird sollte es dann gelingen dein Vorhaben zu bewerkstelligen.
Allerdings wird's schwierig, wenn du 2 Lieferanten mit dem Namen Maier Karl in deiner Tabelle hast oder zum ersten Maier Karl noch ein zweiter
hinzukommen soll - was ja nicht kategorisch auszuschließen sein wird - aus dem Grund habe ich im obigen Statement auch die L_Nr verpackt.

Neuling1

Gerade habe ich es noch einmal alles ausprobiert, leider ohne gewünschten Erfolg
Habe in dem  Hauptformular (F_Kunden) jetzt den Nachnamen des Lieferanten als ungebundenes Kombifeld und als Datensatzherkunft den von dir angegebenen Code
SELECT L_Name & ", " & L_Vorname & ", " & L_Nr FROM T_Lieferanten Order By L_Name
und bei nicht in Liste
Private Sub L_Name_NotInList(NewData As String, Response As Integer)
Response = acDataErrAdded
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("T_Lieferanten", dbOpenDynaset)

rs.AddNew
rs!L_Name = NewData
rs.Update

rs.Close: Set rs = Nothing
Set db = Nothing
End Sub

Das Problem ist folgendes:
Ist der Lieferant bekannt und wurde der Name gefunden, wird er  nicht in das U-Form (F_Lieferanten) geschrieben. Wegen der Autonr kann ich nichts in das Zahlfeld (Primärschlüssel) eingeben
Habe ich das Namensfeld in F_Lieferanten als Kombifeld und einen neuen "Kunden" , der wiederum auch noch einen neuen "Lieferanten" hat möchte ich einen neuen Datensatz anlegen. Ich überlege, ein extra Formular dafür zu machen, mit 1 Feld ,,Lieferant suchen", 1 Feld ,,Lieferant neu eingeben",  damit das Programm auch begreift, wenn ich in einem Feld die Zusammenfassung dreier Felder habe, was es machen soll, aber stelle mir das einfach zu aufwendig für die Eingabe vor. Gibt es nicht eine einfachere Möglichkeit? So nach dem Motto, ich tippe die ersten Buchstaben ein, wie in dem jetzigen Feld und mir werden die in der Tabelle befindlichen Namen angezeigt, nur, bitte übernimm den ausgewählten Datensatz dann auch für diesen neuen Kunden oder aber lass mich einen Namen eintippen, dann ins nächste Feld den Vornamen, Anrede, Adresse, wie gewohnt, lege also bitte einen neuen Datensatz an
Datenerhebung dient dem Nachweis, nicht der Form der Prozedur, deren Qualität mit Hilfe von Datenerhebung nachgewiesen werden soll

database

Hallo,
eine der möglichen Möglichkeiten findest du im Anhang.

Achtung nicht gelöst ist die Erfassung eines neuen 'Kunden' im Beispielformular!
Wenn du also einen neuen Datensatz im HaFo anlegst und einen Lieferanten wählst schepperts!