Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

übergabe von ausgewählten paramtern an einen bericht

Begonnen von Carl, Januar 19, 2018, 08:21:53

⏪ vorheriges - nächstes ⏩

Carl

Hier mal eine Beispieldatei. Ich kriegs nicht hin und mache vermutlich an mehreren Stellen Fehler.

Carl

Zitat von: Lachtaube am Januar 21, 2018, 17:47:09
Warum man seine Steuerelemente Liste36 und Liste4 tauft  und anderen hier im Forum den SQL-Text unformatiert vorwirft, ist mir schleierhaft. Das sind Dinge der Konzentration und Selbstdisziplin und hat mit Begabung nichts zu tun. Frei nach dem Motto: wer mir helfen will, kann schließlich selbst die Abfrage in lesbare Form bringen - einen Editor wird er ja schließlich haben.

Sorry :-(

Beaker s.a.

ZitatHauptformular: Einsatzplan2_HF
Steuerelement im Hauptformular: Teilnehmer_UF
Unterformular: Einsatzplan2_UF_TN
Demnach
Forms!Einsatzplan2_HF.Teilnehmer_UF.Form.RecordSource
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)

Lachtaube

Weil die Bezüge schon in der Berichtsabfrage fest verdrahtet sind, ist die Anweisung überflüssig. Du musst die doppelte WochenID aus abfWochendatenGewaehlteWoche2 entfernen.

Und außerdem heißt Dein Unterformular frmTeilnehmerzuordnungUFO2, was aber jetzt egal ist, und das Hauptformular benötigt auch keine RecordSouce (Datenherkunft), weil es nur als Container dient.
Grüße von der (⌒▽⌒)

Carl

Zitat von: Lachtaube am Januar 21, 2018, 18:35:30
Weil die Bezüge schon in der Berichtsabfrage fest verdrahtet sind, ist die Anweisung überflüssig. Du musst die doppelte WochenID aus abfWochendatenGewaehlteWoche2 entfernen.

Darf ich nochmal nachfragen?

Welche Anweisung ist überflüssig?

Und wo steht eine doppelte WochenID? In der Abfrage sehe ich nur eine.

Zitat von: Lachtaube am Januar 21, 2018, 18:35:30
Und außerdem heißt Dein Unterformular frmTeilnehmerzuordnungUFO2, was aber jetzt egal ist, und das Hauptformular benötigt auch keine RecordSouce (Datenherkunft), weil es nur als Container dient.

Es ist für mich nur schwer verständlich, wenn ich es nicht sehe. Kannst Du mir das bitte in der angehängten Datei eintragen, damit ich es am Beispiel erlernen kann?

Carl

Lachtaube

Hier SELECT tbWochenDaten.*, tbWochenDaten.WochenID, ... wird die WochenID in die Feldliste 2x aufgenommen.

Der VBA-Code im Bericht ist unnötig, weil sich die gespeicherte Abfrage ja schon auf die Formularparameter der Abfrage bezieht und dadurch die Daten entsprechend einschränkt.

Verwende den Abfragetext aus meiner ersten Antwort hier im Thread für die Abfrage (kopieren und in die SQL-Ansicht einer Abfrage einfügen).
Grüße von der (⌒▽⌒)

Beaker s.a.

Hallo Carl,
Sorry, von einer gespeicherten Abfrage war ich nicht ausgegangen
(habe mir die DB nicht angeschaut  :( )
Somit folge Lachtaubes Anmerkungen.
gruss ekkehard
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)

Carl

Also ich habe jetzt den doppelten Bezug auf "WochenID" entfernt. abfWochendatenGewaehlteWoche2 sieht jetzt so aus:


SELECT tbWochenDaten.WochenID, tblmassnahmedurchgaenge.ID, tblmassnahmedurchgaenge.Maßnahmedurchgang, tblTeilnehmer.AEAPTeilnehmerinfosKurz, tblTeilnehmer.AEAPKurzerprobungsbereichKurz, tblTeilnehmer.TeilnehmerAkronym, tblTeilnehmer.AEAPProjekt, tblTeilnehmer.AEAPFragestellung, tbWochenDaten.WochenMemo, tbWochenDaten.MoMemo, tbWochenDaten.DiMemo, tbWochenDaten.MiMemo, tbWochenDaten.DoMemo, tbWochenDaten.FrMemo
FROM tblmassnahmedurchgaenge RIGHT JOIN (tblTeilnehmer INNER JOIN tbWochenDaten ON tblTeilnehmer.ID = tbWochenDaten.TeilnehmerID) ON tblmassnahmedurchgaenge.ID = tblTeilnehmer.massnahmeDurchgang
WHERE (((tbWochenDaten.WochenID)=[Formulare]![Einsatzplan2_HF]![Liste36]) AND ((tblmassnahmedurchgaenge.ID)=[Formulare]![Einsatzplan2_HF]![Liste4]));


Dann habe ich eine neue Abfrage als abfWochendatenGewaehlteWoche2i gewählt und in der SQL-Ansicht hinein kopiert:


SELECT w.*,
       d.ID,
       d.Maßnahmedurchgang,
       t.AEAPTeilnehmerinfosKurz,
       t.AEAPKurzerprobungsbereichKurz,
       t.TeilnehmerAkronym,
       t.AEAPProjekt,
       t.AEAPFragestellung,
       w.WochenMemo
FROM   tblmassnahmedurchgaenge d
       RIGHT JOIN (tblTeilnehmer t
                   INNER JOIN tbWochenDaten w
                           ON t.id = w.TeilnehmerID)
               ON d.iID = t.massnahmeDurchgang
WHERE  w.WochenID = [Formulare]![Einsatzplan2_HF]![Liste36] AND
             d.ID = [Formulare]![Einsatzplan2_HF]![Liste4];


Darauf basiert dann das Formular?

Wenn ich das öffne, kommen Fehlermeldungen, dass er die Parameterwerte nicht finden kann.

Kannst Du es mir bitte in der hochgeladenen Datei beispielhaft einrichten, damit ich es mir in Ruhe ansehen und lernen kann?

Carl

Lachtaube

Grüße von der (⌒▽⌒)

Carl

ah, vielen vielen Dank :-) Und sag mal, wieso heißen die Tabellen in der Abfrage jetzt d, t, w ? Ist das nur eine optische Korrektur oder ist das notwendig?

Carl

PhilS

Zitat von: Carl am Januar 23, 2018, 12:40:06
wieso heißen die Tabellen in der Abfrage jetzt d, t, w ? Ist das nur eine optische Korrektur oder ist das notwendig?
Wenn die Abfrage dem SQL entspricht, was du vorher hier gepostet hast, dann ist es nur eine kosmetische Änderung um das SQL einfacher und übersichtlicher zu schreiben.
Diese "Ersatznamen" nennt man Alias. - Weiterführende Informationen zu Aliasen.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Lachtaube

In der von mir hier geposteten Abfrage hat sich noch ein Tipp-Fehler meinerseits eingeschlichen.
ON d.iID = t.massnahmeDurchgang enthält an rot markierter Stelle ein i zuviel. Und das Wochenmemo ist mir auch noch als Doublette aufgefallen und wurde eliminiert. Im Anhang habe ich dann auch noch an zwei Stellen in Tabellen ß gegen ss getauscht.
Grüße von der (⌒▽⌒)