AHNUNG? Geschrieben 5. Juni 2007 Geschrieben 5. Juni 2007 Hallo zusammen, ich habe das folgende Problem. In einer Access Tabelle habe ich die Felder Nachname, Nachname1 und Nachname2. Mit Hilfe eines Kombinationsfeldes möchte ich dann im Formular gucken, ob der Name, den ich eingeben will, schon vorhanden ist oder nicht. Ich habe allerdings das Problem, dass Nachname1 und Nachname2 bei der Suche nie berücksichtigt werden. Nur die Namen, die in Nachname stehen werden auch gefunden. Irgenwie stimmt da etwas bei der Abfrage nicht. Kann vielleicht jemand helfen? Vielen Dank im voraus! Zitieren
Reinhold Geschrieben 5. Juni 2007 Geschrieben 5. Juni 2007 In einer Access Tabelle habe ich die Felder Nachname, Nachname1 und Nachname2. Das klingt nicht so, als sei die Tabelle normalisiert. Möglicherweise wäre dein Problem sonst nie entstanden. Mit Hilfe eines Kombinationsfeldes möchte ich dann im Formular gucken, ob der Name, den ich eingeben will, schon vorhanden ist oder nicht. Ich habe allerdings das Problem, dass Nachname1 und Nachname2 bei der Suche nie berücksichtigt werden. Nur die Namen, die in Nachname stehen werden auch gefunden. Ich nehme mal an, du müsstest deiner Kombobox eine Union-Abfrage zu Grunde legen, also etwas wie "Select nachname from Tabelle UNION Select nachname1 from Tabelle UNION Select nachname2 from Tabelle". hth Reinhold Zitieren
AHNUNG? Geschrieben 5. Juni 2007 Autor Geschrieben 5. Juni 2007 Das klingt nicht so, als sei die Tabelle normalisiert. Möglicherweise wäre dein Problem sonst nie entstanden. Ja, das habe ich dem Anwender auch schon gesagt. Wie es immer so ist. Der Anwender macht so lange, bis es nicht weitergeht und dann komme ich ins Spiel und muss mit dem klar kommen was ist. Zitieren
Reinhold Geschrieben 5. Juni 2007 Geschrieben 5. Juni 2007 Ja, das habe ich dem Anwender auch schon gesagt. Wie es immer so ist. Der Anwender macht so lange, bis es nicht weitergeht und dann komme ich ins Spiel und muss mit dem klar kommen was ist. Oder aber, du änderst es. Gegen Bezahlung versteht sich :D:D Das ist allerdings unter Umständen nicht so ganz einfach (Gott sei Dank, sonst könnte es ja jeder) :p Zitieren
AHNUNG? Geschrieben 2. Juli 2007 Autor Geschrieben 2. Juli 2007 Hallo zusammen, ich muss auf dieses Thema noch einmal zurück kommen. Also, Tabelle normalisieren habe ich eigentlich keine Lust zu. Es muss doch auch so eine Möglichkeit geben, dass der Name - den ich eingebe - in allen Spalten gesucht wir, oder. Zitieren
ipu Geschrieben 2. Juli 2007 Geschrieben 2. Juli 2007 geht denn sowas wie: SELECT Nachname,Nachname1,Nachname2 FROM Tabelle WHERE Nachname='Meier' OR Nachname1='Meier' OR Nachname2='meier'? grüße von ipu Zitieren
AHNUNG? Geschrieben 2. Juli 2007 Autor Geschrieben 2. Juli 2007 Ja, ich geben den Namen aber in ein Kombinationsfeld (Name: Kombinationsfeld125) ein. Diesen Namen soll er dann übernehmen (bzw. danach suchen). Zitieren
ipu Geschrieben 2. Juli 2007 Geschrieben 2. Juli 2007 ich dachte, als datensatzherkunft für dein kombinationsfeld mit herkuntstyp = werteliste und als steuerelementinhalt nachname. bin mir aber nicht sicher, ob das so geht. ansonsten würde ich das programmieren. grüße von ipu Zitieren
AHNUNG? Geschrieben 2. Juli 2007 Autor Geschrieben 2. Juli 2007 Ich glaube, dass ich das Problem noch einmal beschreiben muss. Die Anwenderin hat sich also eine Maske mit Nachname, Nachname2 und Nachname3 gebaut. Ich kann also pro Firma max. 3 Ansprechpartner eingeben. Zusätzlich hat sie sich ein Kombinationsfeld auf diese Maske geschoben. Und genau um dieses Suchfeld geht es. Wenn ich hier einen Namen eingebe, der in Nachname steht werden mir die Informationen richtig angezeigt. Nachnamen, die dagegegen in Nachname2 oder Nachname3 stehen kann er dagegen nicht finden. Herkunftstyp = Tabelle/Abfrage Datensatzherkunft = Select Nachname, Nachname2, Nachname3 from Tabelle1 Zitieren
Amstelchen Geschrieben 2. Juli 2007 Geschrieben 2. Juli 2007 das ist schlechtes, ganz schlechtes design - so als würde man einen zweirad alle zeitlang ein rad mehr anstecken und hoffen, dass man nicht verunglückt. wenn ich die problematik richtig verstanden habe, dann versuch mal Nachname1 von Tabelle, Nachname2 von Tabelle und Nachname3 von Tabelle alle mit UNION aufzulisten - bedenke aber, dass leute, die denselben nachnamen haben, doppelt aufscheinen, aber nicht mehr untereinander unterscheidbar sind. s'Amstel Zitieren
AHNUNG? Geschrieben 2. Juli 2007 Autor Geschrieben 2. Juli 2007 das ist schlechtes, ganz schlechtes design - so als würde man einen zweirad alle zeitlang ein rad mehr anstecken und hoffen, dass man nicht verunglückt. s'Amstel Ja, das mit dem Datenbankdesign hatte wir ja schon einmal.......Es nützt aber ja nichts. Die Anwenderin hat sich an diese Aufgabe gemacht und es hatte dann das o.g. Ergebnis. Nun kommt sie nicht weiter und ich habe das Ding auf dem Tisch ;-(. Gib mir doch bitte den SQL-Befehl.... Zitieren
HJST1979 Geschrieben 3. Juli 2007 Geschrieben 3. Juli 2007 Also wenn ich das Problem richtig verstehe ist nicht der SQL- Befehl das problem da kannste nämlich den auch von "ipu" angegebenen benutzen. SELECT Nachname,Nachname1,Nachname2 FROM Tabelle WHERE Nachname='Meier' OR Nachname1='Meier' OR Nachname2='meier' Das Problem ist nur die ComboBox. Ich würde wegen deinem angesprochenen Problem es wie folgt machen (VBA) Select Firmenname, Nachname, Nachname1, Nachname2 from Tabelle1 Und dann die Combobox per Hand füllen Combobox.Values.Add(Nachname & " " & Firmenname) Combobox.Values.Add(Nachname2 & " " & Firmenname) Combobox.Values.Add(Nachname3 & " " & Firmenname) Weiß nicht ob der Befehl genau richtig ist, aber das findest dann schon raus. FirmenID natürlich nicht vergessen :-) Wenn nun der Endanwender in der Combobox mit dem Nachnamen zum schreiben beginnt, springt er auch zu Nachname 2 und Nachname 3 hin !! Zitieren
AHNUNG? Geschrieben 4. Juli 2007 Autor Geschrieben 4. Juli 2007 Hallo zusammen, ich habe mal den momentanen Quelltext heraus kopiert. Private Sub Kombinationsfeld125_AfterUpdate() ' Den mit dem Steuerelement übereinstimmenden Datensatz suchen. Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[Nachname] = '" & Me![Kombinationsfeld125] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub Hier wird Nachname2 und Nachname3 auch gar nicht berücksichtigt! Zitieren
skorpionboy88 Geschrieben 13. Juli 2007 Geschrieben 13. Juli 2007 Hallo zusammen, ich habe das folgende Problem. In einer Access Tabelle habe ich die Felder Nachname, Nachname1 und Nachname2. Mit Hilfe eines Kombinationsfeldes möchte ich dann im Formular gucken, ob der Name, den ich eingeben will, schon vorhanden ist oder nicht. Ich habe allerdings das Problem, dass Nachname1 und Nachname2 bei der Suche nie berücksichtigt werden. Nur die Namen, die in Nachname stehen werden auch gefunden. Irgenwie stimmt da etwas bei der Abfrage nicht. Kann vielleicht jemand helfen? Vielen Dank im voraus! die Datenbank sollte erstmal Normalisiert werden. Es sind Redundanzen (Wiederholfelder vorhanden) Wieso brauchst du Nachname 1 und Nachname 2??? nimm doch alles Zusammen und mach den SQL befehl mit "like " Maier"...... müsste eigetnlich gehen... Zitieren
Crash_Overload Geschrieben 21. August 2007 Geschrieben 21. August 2007 Also wenn du das Problem schnell vom Tisch haben willst, dann würde ich es so machen wie "HJST1979"! Es ist aber nur ne Frage der Zeit bis weiter Probleme wie diese auftreten die nun mal auf die DB zurück zuführen sind! Ich empfehle dir echt lieber die DB zu normalisieren! In erster Hinsicht ist es wahrscheinlich viel Arbeit, aber es lohnt sich echt! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.