Listenfeld mit Daten aus anderer Tabelle, nur 1x auswählbar

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

BaseBenutzer
Beiträge: 2
Registriert: Sa, 12.10.2013 09:42

Listenfeld mit Daten aus anderer Tabelle, nur 1x auswählbar

Beitrag von BaseBenutzer »

Hallo miteinander,

ich habe derzeit noch ein kleines Problem in Base. Ich habe 2 Tabellen sowie 2 Formulare.

In Tabelle 1 beinhaltet eine der Spalten eine Vorgangsnummer. Diese wird automatisch erhöht und in Formular 1 angezeigt.

Nun soll in Formular 2 die Vorgangsnummer aus einem Dropdown-Feld ausgewählt werden können. Dabei soll es so sein, dass, nach dem anschließenden Speichern des Datensatzes, diese Vorgangsnummer nicht mehr in Formular 2 auswählbar ist.

Hintergrund ist, dass zu jeder Vorgangsnummer nur 1x das Formular 2 ausgefüllt werden soll.


Bisher habe ich noch keine Beziehungen zwischen den Formularen erstellt. Die Daten (Vorgangsnummern) aus Tabelle 1 bekomme ich über den SQL-Befehl:
SELECT "LaufendAuftrags", "ID" FROM "Tabelle1"
Diesen habe ich im Listenfeld in Formular 2 hinterlegt.


Könnt ihr mir einen Tipp geben, wie ich die bereits in Formular 2 "verwendete" Vorgangsnummer aus dem Listenfeld streiche?

Dazu konnte ich leider noch nichts im Internet finden.

Vielen Dank
Grüße
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Listenfeld mit Daten aus anderer Tabelle, nur 1x auswähl

Beitrag von RobertG »

Hallo BaseBenutzer,

eigentlich ist so etwas eine 1:1-Beziehung. Tabelle 2 hat den gleichen Primärschlüssel wie Tabelle 1. Der Inhalt von Tabelle 2 wird über ein Unterformular von Tabelle 1 (oder eben einfach der Vorgangsnummer hiervon) bestimmt. In dem Unterformular kannst Du immer nur einen Datensatz eingeben.
Willst Du so etwas mit einem Listenfeld realisieren, so musst Du das Listenfeld nach der Erstellung eines Datensatzes jedes Mal aktualisieren - das geht zwar auch über Buttons (Feld aktualisieren gibt es als gesonderten Button in der Navigationsleiste), wird Dir aber vermutlich dafür vom Bedienkomfort nicht ausreichen.
Befehl für das Listenfeld:
SELECT "Nr" FROM "Tabelle1" WHERE "Nr" NOT IN (SELECT "Nr" FROM "Tabelle2")

Gruß

Robert
Antworten