Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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

Geschrieben
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.

Geschrieben
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:D

Das ist allerdings unter Umständen nicht so ganz einfach (Gott sei Dank, sonst könnte es ja jeder)

:P:p

  • 4 Wochen später...
Geschrieben

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.

Geschrieben

geht denn sowas wie:

SELECT Nachname,Nachname1,Nachname2

FROM Tabelle 

WHERE Nachname='Meier' OR Nachname1='Meier' OR Nachname2='meier'

?

grüße von ipu

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben
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....

Geschrieben

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 !!

Geschrieben

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!

  • 2 Wochen später...
Geschrieben
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...

  • 1 Monat später...
Geschrieben

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!

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...