Seite 1 von 1

ComboBox Auswahl benutzen

Verfasst: Sa, 28.01.2006 15:52
von Kanten
Hallo zusammen,

bin völliger Newbie und bitte um eure Hilfe.
Ich habe ein Adresstabelle angelegt in denen alle meine Kunden stehen. (Tabelle : Kunden)
Nun habe ich eine Tabelle erstellt, in der ich die Stunden eintrage die ich für einen bestimmten Kunden gearbeitet habe. (Tabelle : Stunden)

Per Formular möchte ich gerne mittels einer Combobox den Namen des Kunden aus der Tabelle "Kunden" auswählen.

Das klappt auch soweit.
Nur jetzt kommt mein Problem.

Neben der ComboBox die mir die Namen der Kunden anzeigt, möchte ich auch die KundenID des jeweiligen Kunden angezeigt bekommen.
Beide sind in der Tabelle "Kunden".

Bild

Nur bekomme ich es nicht hin, das mir die Textbox "KundenID" die passende KundenID zum ausgewählten Kunden anzeigt.
Wie muß ich die beiden verknüpfen damit das klappt.

Das nächste wäre dann, das die ausgewählten Daten der Tabelle "Kunden" die mir im Formular angezigt werden, in die Tabelle "Stunden" geschrieben werden. (Die Felder "Firma" und "KundenID" sind in beiden Tabellen vorhanden.)

Danke schon mal!

Kanten

Mehrere Einträge In ListBox oder ComboBox setzen

Verfasst: Sa, 25.03.2006 22:50
von Guivanni
Hallo,
Neben der ComboBox die mir die Namen der Kunden anzeigt, möchte ich auch die KundenID des jeweiligen Kunden angezeigt bekommen.
Beide sind in der Tabelle "Kunden".
  • Hier gäbe es eine elegantere Lösung. Indem der Name + KundenID des jeweiligen Kunden zusammen in deiner ComboBox angezeigt wird. Dazu brauchst nur folgende SQL-Query an deine Datenbank stellen:

Code: Alles auswählen

SELECT CONCAT( "KundenID", "Name" ), "KundenID" FROM "Kunden"
 
  • Eleganter wäre es sicher noch, man fügt ein Leerzeichen zwischen KundenID und Name ein.

Code: Alles auswählen

 SELECT CONCAT( "KundenID", CONCAT( ' ', "Name")),"KundenID" FROM "Kunden" 
  • Die SQL-Funktion CONCAT verknüpft zwei Spalten zu einer.
    Somit bleibt dir das Problem erspart, bei geänderten Eintrag des Kunden-Namen deiner ComboBox, die dazugehörige Kunden-ID aus dem Datensatz zu ermitteln. Dies wäre dann eh nur über ein Makro möglich.
-------------------------------------------------------------------------------------
Das nächste wäre dann, das die ausgewählten Daten der Tabelle "Kunden" die mir im Formular angezigt werden, in die Tabelle "Stunden" geschrieben werden. (Die Felder "Firma" und "KundenID" sind in beiden Tabellen vorhanden.)
  • Wäre gut wenn du dies noch etwas konkretisieren könntest.
    Wenn sich dieses Problem jedoch nur auf die ComboBox in deinem Formular bezieht, ist dies leicht zu lösen. Doch dazu sollte, wenn du wiederum kein Makro nutzen möchtest, ein Fremdschlüssel von der Stunden-Relation zu dem Primärschlüssel der Kunden-Relation gesetzt werden. Somit kann jeder Eintrag (Datensatz) in deiner Stunden-Tabelle einen Kunden in deiner Kunden-Tabelle zugeordnet werden.
  • Damit nun der Primärschlüssel des jeweils ausgewählten Kunden deiner ComboBox, in die Spalte des Fremdschlüssels deiner Stunden-Tabelle eingetragen wird, mache folgendes:

    1. Wähle im Kontextmenü der ComboBox Formular..., dann das Register Daten, hier:
    • 1.1 Unter Art des Inhalts Tabelle
      1.2 Unter Inhalt Stunden
    Schließe das Fenster

    2. Wähle wieder die ComboBox und rufe im Kontextmenü Kontrollfeld... auf, wechsle zu dem Register Daten und folgendes:
    • 2.1 Unter Datenfeld den Fremdschlüssel der Tabelle Stunden auswählen, bspw. "Kunde-Reference"
      2.2 Unter Art des Inhalts SQL
      2.3 Unter Listeninhalt obigen Code
      2.4 Unter Gebundenes Feld 1
Somit wird der Primärschlüssel eines angezeigten Kunden, der ComboBox(bspw. "3 Meier") , in die Fremdschlüssel-Spalte der Tabelle Stunden geschrieben. Also stünde dann bei diesem Bsp in der Spalte "Kunde-Reference" der Wert 3.