Hallo,
ich habe ein
DB-Grid, welches die Daten meiner
DB-Tabelle anzeigt. Es existieren unter anderen die Tabellen 'Kunde' und 'Auftrag'. Jeder Auftrag gehört zu einem Kunden und so speichere ich die ID des Kunden in Auftrag. Wenn ich die Tabelle 'Auftrag' anzeige, ist der Fremdschlüssel Kunde_ID als Lookup in einer DBLookupCombobox dargestellt. So wird nicht die Kunde_ID angezeigt, sondern der Name des Kunden. Um einen neuen Auftrag zu einem Kunden anzulegen, muss man in der Spalte Kunde einfach nur den Namen eintippen, die DBLookupCombobox springt dann auf den richtigen Eintrag.
So weit alles klar.
Zu den Aufträgen existiert eine weitere Tabelle mit den Auftragspositionen. Legt man zu einem bestehenden Auftrag eine neue Position an, so existiert für die Zuordnung zum Auftrag ebenfalls ein Lookupfeld in Form einer DBLookupCombobox. Möchte man den Auftrag auswählen, so sollte man die Auftrag_ID wieder einfach eintippen können. Da die Auftrag_ID aber ein Integer ist, wird der Wert aus der DBLookupCombobox nicht ausgewählt, da das nur mit Strings funktioniert.
Meine Lösungsidee: Zu jeder ID einer Tabelle wird ein zusätzliches Feld beschrieben, welches dieselbe ID als String speichert. Beim Lookup bezieht man sich dann auf dieses Feld.
Gibt es eine elegantere Lösung um ein Lookup auf die Integer mittels DBLookupCombobox zu realisieren und die doppelte Speicherung der ID zu vermeiden?