Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage mit Kriterium aus Formular ausführen ...

Begonnen von Banyan, April 26, 2024, 13:17:44

⏪ vorheriges - nächstes ⏩

Banyan

Hallo an Alle,

ich habe in einer Datenbank einer Abfrage erstellt "Q_AktenListeSachbearbeiter" welche als Kriterium den Wert aus einem Formular "F_Sachbearbeiter_Input" übernimmt.
Es besteht eine Verknüpfung zwischen der Tabelle "Ordner_Liste" welche die gewünschten Daten enthält und der Tabelle "SachbearbeiterSek" welche die Sachbearbeiternamen enthält.

Prinzipiell funktioniert es, nur bekomme ich es nicht hin, dass statt dem Fremdschlüsselwert "Sachbearbeiter_ID_F", der eigentliche Name des Sachbearbeiters in der Abfrage angezeigt wird.
Wenn ich "SachbearbeiterSek.Sachbearbeiter" in die Abfrage aufnehme, bleibt die Abfrage leer.

Könnte mir bitte hier jemand aushelfen ?

Gruß
Banyan



PhilS

Die mehrfache Verknüpfung auf die Tabelle SachbearbeiterSek in deiner Abfrage ist so nicht richtig.
Für jede Spalte in deiner Tabelle Order_Liste, die einen Bezug auf SachbearbeiterSek darstellt, musst du die Tabelle SachbearbeiterSek erneut zur Abfrage hinzufügen. In deinem Falls also 2 mal; die zweite Inkarnation der Tabelle wird dann automatisch SachbearbeiterSek_1 benannt. Die Spalten Sachbearbeiter_ID_F und Eingetragen_von_F werden dann mit nur je einer der Tabellen verknüpft.

Wenn du den Klartext für Eingetragen_von_F gar nicht brauchst, reicht es wenn du in deiner bestehenden Abfrage die Verknüpfung dorthin entfernst.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Banyan

Hallo PhilS, vielen Dank für deine Antwort,

Also den Klartext von "Eingetragen_von_F" brauche ich schon...

Die Verknüpfungen sehen aber in der Ansicht, wenn ich es direkt unter Beziehungen in Datenbanktools aufrufe, aber richtig aus...?
da verstehe ich gerade etwas nicht...

Banyan

Zitat von: PhilS am April 26, 2024, 14:13:40
ZitatWenn du den Klartext für Eingetragen_von_F gar nicht brauchst, reicht es wenn du in deiner bestehenden Abfrage die Verknüpfung dorthin entfernst.
gut ich habe in der Abfrage die 2. Verknüpfung entfernt...bekomme aber immer noch nur die index Nummer des Sachbearbeiters...?

Beaker s.a.

Ist klar, oder nicht. Du hast das Feld mit dem Namen ja auch nicht
in der Feldliste, - wie soll der also angezeigt werden.
Du musst die Tabelle der SA mit in die Abfrage nehmen und die Felder,
die du sehen willst dann in die Feldliste aufnehmen.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

PhilS

Zitat von: Banyan am April 26, 2024, 14:43:49Die Verknüpfungen sehen aber in der Ansicht, wenn ich es direkt unter Beziehungen in Datenbanktools aufrufe, aber richtig aus...?
da verstehe ich gerade etwas nicht...
Die generellen Beziehungen der Tabellen (Datenbanktools - Beziehungen) sind zwar eng verbunden mit den Beziehungen innerhalb einer Abfrage, aber sie sind nicht dasselbe. - Ob die Tabellenbeziehungen bei dir richtig sind oder nicht, lässt sich nur sagen, wenn du mal einen Screenshot des Beziehungsfensters zeigst.

Zitat von: Banyan am April 26, 2024, 15:09:35gut ich habe in der Abfrage die 2. Verknüpfung entfernt...bekomme aber immer noch nur die index Nummer des Sachbearbeiters...?
Jetzt kannst du aber sowohl SachbearbeiterSek.Sachbearbeiter als auch SachbearbeiterSek_1.Sachbearbeiter in deiner Abfrage anzeigen lassen, ohne dass dadurch keine Daten mehr angezeigt werden.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Banyan

ZitatJetzt kannst du aber sowohl SachbearbeiterSek.Sachbearbeiter als auch SachbearbeiterSek_1.Sachbearbeiter in deiner Abfrage anzeigen lassen, ohne dass dadurch keine Daten mehr angezeigt werden.

Nein, leider nicht, QUery Ergebnis ist leer...

PhilS

Zitat von: Banyan am April 26, 2024, 17:43:41Nein, leider nicht, QUery Ergebnis ist leer...
Zeig mal einen Screenshot und/oder das SQL der Abfrage.

Sind immer Werte für Spalten Sachbearbeiter_ID_F und Eingetragen_von_F eingetragen? Wenn nein, brauchst du einen Outer Join zu den Sachbearbeiter Tabellen (Eigenschaften der Verknüpfung, Alle Datensätze aus Order_Liste, übereinstimmende aus SachbearbeiterSek).

Es ist sicherlich auch sinnvoll, wenn du erstmal die Abfrage alleine, ohne den Bezug auf das Formularsteuerlement testest und das Kriterium erst dann ergänzt, wenn die Abfrage für sich genommen funktioniert, wie gewünscht.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor


PhilS

Zitat von: Banyan am April 26, 2024, 17:58:41schau mal
Deine generellen Tabellenbeziehungen sehe auf den ersten Blick richtig aus. - Schau sie dir nochmal genau an. Dort siehst die von mir beschriebene Situation mit SachbearbeiterSek und  SachbearbeiterSek_1.

Genau so sollten auch die Beziehungen in der Abfrage aussehen. Das tun sie im Moment nicht; die sind noch unverändert zu deiner Ausgangssituation.
Wie du die richtigen Beziehungen in der Abfrage erstellst, hatte ich oben beschrieben.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Banyan

Vielen Dank für deine Geduld,

eine Tabelle SachbearbeiterSek_1 existiert nicht (mehr) war ursprünglich vorgesehen.
Da aber "EingetragenVon" eine Teilmenge von "SachBearbeiterSek" ist wurde das über eine Abfrage gelöst.

Wenn ich versuche diese Abfrage "SachbearbeiterSek_1" einzubinden bekomme ich eine Fehlermeldung.


MzKlMu

#11
Hallo,
Zitateine Tabelle SachbearbeiterSek_1 existiert nicht
bei dem gezeigten Beziehungsstruktur ist eine solche Aliastabelle zwingend erforderlich. Die existiert nur virtuell.
Und bei Bezug auf die Felder der normalen SachbearbeiterSek und der Aliastabelle SachbearbeiterSek_1 muss der jeweilge Tabellenname vorangestellt werden.

Am Anfang ist das etwas schwierig zu verstehen, aber wenn es in einer Tabelle 2 Fremdschlüssel auf die gleiche Tabelle gibt ist dieses Konstrukt erforderlich, das geht nicht anders, sonst können keine unterschiedlichen Namen erfasst bzw. angezeigt werden. Zu beachten ist auch noch, dass eine Abfrage mit dieser Struktur im Abfrageentwurf zunächst immer falsch ist und manuell angepasst werden muss.
Die in #10 gezeigte Abfrage ist falsch, auch in der Aliastabelle muss die ID verwendet werden und auf keinen Fall der Name.
Gruß Klaus

Banyan

Hallo Klaus, vielen Dank für deine Antwort.

d.h. ich muss die Tabelle SachbearbeiterSek_1 erstellen ? und die statt der ABfrage verwenden ?

Gruß
Armin

MzKlMu

#13
Hallo,
nein nicht erstellen, nur 2x in die Abfrage aufnehmen.

Nachtrag:
Im Anhang noch ein einfaches Beispiel.

Zur Beachtung:
Die Sachbearbeiternamen werden jeweils 2x angezeigt.
1x über die Einstellung des Kombis und 1x über Textfelder die über die Abfrage gefüllt werden.
Beachte den Steuerelementinhalt der Textfelder, ein Feld bezieht sich auf die normale Tabelle und ein Feld auf die virtuelle (alias) Tabelle. Die Tabellennamen müssen dem Feldnamen vorangestellt werden.
Die Textfelder sind nur zum Verständnis drin, normalerweise reichen für den Namen die Kombifelder. Die Kombifelder unterscheiden sich nur über den Steuerelementinhalt.
Gruß Klaus

Banyan

Hallo Klaus,

vielen Dank für die Erläuterungen und das Beispiel, welches mir sehr geholfen hat.
Ich habe die Abfrage entsprechend deinem Beispiel angepasst und die funktioniert auch.

Nur die Ursprungsidee aus dem Formular die Sachbearbeiternamen auswählen zu lassen, sodaß jeder Sachbearbeiter seine Abfrage machen kann klappt nicht...
Habe ich etwas übersehen / vergessen ?

Gruß
Banyan