Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Experten-Abfrage





Frage

schon wieder ein kleines flugbuchproblem :)... - jeder einzelne flug ist ein datensatz - untertabelle: passagierliste zu jedem flug wunsch: eine abfrage, welche jeden flug mit passagierliste ausgibt. sollte so aussehen: flug1_Abflug_Ankunft_passagier1 __________________passagier2 __________________passagier3 flug2_Abflug_Ankunft_passagier1 __________________passagier2 __________________passagier3 tatsächlich liefert die abfrage jedoch ein solches resultat (welches optisch sehr irreführend ist): flug1_Abflug_Ankunft_passagier1 flug1_Abflug_Ankunft_passagier2 flug1_Abflug_Ankunft_passagier3 flug2_Abflug_Ankunft_passagier1 flug2_Abflug_Ankunft_passagier2 flug2_Abflug_Ankunft_passagier3 bin richtig dankbar für gute tipps. grüssle, :) kerstin

Antwort 1 von El Bobbele

Hallo Kerstin!

Die von dir gewünschte Ansicht entspricht absolut nicht der Natur von Abfragen. Stattdessen solltest du besser auf ein Formular oder Bericht ausweichen, die sind überhaupt für Datenpräsentationen wesentlich besser geeignet.

Hier bietet sich eine ganz simple Haupt-/Unterformularkombination an. Das Hauptformular in Einzelformularansicht listet die Flüge auf, das Unterformular in Endlosformularansicht die dazugehörigen Passagiere. Verknüpft sind die Formulare wie üblich über die Beziehungsfelder aus beiden Tabellen. Ein Bericht wird auf die gleiche Weise hergestellt.

Gruss
El Bobbele

Antwort 2 von kerstin

hallo El Bobbele,
ja, ich weiss. ich befürchtete auch bereits so eine antwort :).

Der Grund, warum es so optimal wäre: Die darstellung der einzelnen flüge sollte ja bereits ein endlosformular sein (jeder flug eine zeile). in so einem endlosformular lässt sich dann aber nur mit sehr viel aufwand ein unterformular (passagierliste) einfügen, welches ja auch ein ENDLOSFORMULAR ist.

und letztendlich entspricht meine abfrag ja schon fast dem gewünschten endprodukt... lediglich jeder flug soll nur 1mal aufscheinen, anstatt für jeden passagier einmal... siehe darstellung oben.... vielleicht gehts irgendwie mit datagrid oder so, wobei man daten unsichtbar macht wenn sie schonmal dargestellt wurden oder so....

Antwort 3 von kerstin

p.s
die abfrage sollte übrigens genau so in ein formular übernommen werden.

vielleicht gibt es ja im formular irgnedwie die möglichkeit, daten teilweise auszublenden, wenn der selbe datensatz (flug) schon mal dargestellt wurde (bedingte formatierung? aber wie könnte die bedingungs-formel aussehen??).

ein bericht bietet sich hier leider auch nicht an, zumal die darstellung auch die möglichkeit bieten soll, passagiere rauszulöschen oder welche hinzuzufügen....

bin schon gespannt.

gruss in die runde, kerstin

Antwort 4 von mapet

Hallo Kerstin

Du kannst in einem Endlosformular nicht noch ein Endlosformular platzieren. Was sich anbietet ist z.b. ein weiteres Formular das die Passagiere enthält und jedesmal beim Datensatzwechsel aktualisiert wird.
Die andere Möglichkeit Du nimmst für die Flüge kein Endlosformular sondern einzelnes formular dann kannst die Passagierliste problemlos als Endlosformular platzieren. Um die richtigen Flüge zu suchen kannst Du dann dem User ein z.B. ein Listenfeld zur Verfügung stellen.

mapet

Antwort 5 von El Bobbele

Hallo Kerstin!

Wenn zwei Endlosformulare eine Haupt-/Unterformularlösung simulieren sollen, dann mache ich das grundsätzlich auf diese Weise:

1. Lege ein leeres, ungebundenes Formular an(hier: Formular1). Platziere darin irgendwo ein Textfeld "txtLink", das unsichtbar ist.

2. Lege ein neues Endlosformular (frmFlug) an, das an die Flugtabelle gebunden ist. Füge frmFlug als Unterformular in Formular1 ein. Füge in frmFlug die Ereignisse "Beim Anzeigen" und "Nach Eingabe" hinzu:


Private Sub Form_AfterInsert()
    Parent.txtLink = Me.<Name des Primärschlüssels>
End Sub

Private Sub Form_Current()
    Parent.txtLink = Me.<Name des Primärschlüssels>
End Sub


3. Lege ein neues Endlosformular (frmPassagier) an, das an die Passagiertabelle gebunden ist. Füge frmPassagier als Unterformular in Formular1. Ändere in frmPassagier diese Eigenschaften:

Verknüpfen von: <Name des Fremdschlüssels>
Verknüpfen nach: txtLink

Das war es dann auch schon. Bei jedem Datensatzwechsel oder Neueingabe in frmFlug wird der Primärschlüssel ins Textfeld txtLink übertragen, an das das Formular frmPassagier gebunden ist.

Gruss
El Bobbele

Antwort 6 von dipfling

Hallo,
ich habe ein ähnliches Problem wie Kerstin, nur möchte ich meine "Passagiere" nicht in einem Formular dem jeweiligen Flug zuordnen, sondern die Abfrage so gestalten, dass in einem neuen Feld (Textfeld/memofeld) die Passagiere hintereinander aufgeführt werden, also etwa so:
flug1_abflug_ankunft_[passagier1&", "&passagier2&", "&passagier3]
Ich hab bislang nur skeptische Blicke geerntet, aber noch keine Lösungshinweise erhalten.
Viele Grüsse
Dipfling

Antwort 7 von kestin

hallo El Bobbele,
du hast dir so viel mühe gegeben. danke dir dafür!!! denke deine obige idee ist für mich verwertbar - werde sie mir mal durch den kopf gehen lassen - glaube ich kann sie - etwas modifiziert - umsetzen.

vielen dank nochmal für die tolle, ausführliche beschreibung!

kerstin

p.s. danke auch an mapet! glaube nur der vorschlag hilft mir nicht so weiter...

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: