collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 43
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13994
  • stats Beiträge insgesamt: 66727
  • stats Themen insgesamt: 8995
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: übergabe von ausgewählten paramtern an einen bericht  (Gelesen 2737 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
übergabe von ausgewählten paramtern an einen bericht
« am: Januar 19, 2018, 08:21:53 »
Ich habe mal eine Frage:

gegeben:
*ein HF/UFOendlos
*das HF enthält zwei Listenfelder, in denen jeweils ein Merkmal gewählt werden kann, z.B. Mitarbeiter und Kalenderwoche
* Das UFO basiert auf einer Abfrage, die die Auswahl berücksichtigt und entsprechend das UFO ansteuert.

Um die angezeigten Daten druckbar zu machen, soll nun ein Bericht per Knopfdruck erzeugbar sein, der exakt das angezeigte enthält. Das Problem ist nun die Übergabe der Auswahl an den Bericht. Ich habe keine Ahnung, wie das geht.

any suggestions?

 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #1 am: Januar 19, 2018, 08:39:02 »
Berichte lassen sich analog zu Formularen durch das optionale Argument WhereCondition in der Anweisung DoCmd.OpenReport filtern.
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #2 am: Januar 19, 2018, 11:05:35 »
Hallo Carl,

Link zu DonKarl
http://www.donkarl.com?FAQ5.9

Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #3 am: Januar 19, 2018, 12:10:49 »
Die Schwierigkeit besteht darin, dass das UFO auf einer Abfrage basiert, die die in zwei Textfeldern im HF ausgewählten Kriterien berücksichtigt.

Ich möchte sozusagen den Bericht mit den selben gewählten Kriterien öffnen.

Carl
 

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #4 am: Januar 19, 2018, 12:55:11 »
Zitat
Berichte lassen sich analog zu Formularen durch das optionale Argument WhereCondition in der Anweisung DoCmd.OpenReport filtern.

Du musst den WHERE-Teil deiner Abfrage als Öffnungs-Filter (WhereCondition) für den Bericht verwenden.

Gruß
Josef
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #5 am: Januar 19, 2018, 13:56:27 »
der Where-Teil in der Abfrage, sind das die Kriterien? Also da habe ich zwei:

[Formulare]![Einsatzplan2_HF]![Liste36] und
[Formulare]![Einsatzplan2_HF]![Liste4]

woher weiß die Abfrage, was im Formular in den Listenfeldern gewählt wurde??

Carl
 

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #6 am: Januar 19, 2018, 14:55:43 »
Hallo Carl,

hier ein Muster einer einfachen Abfrage mit WHERE-Teil:

SELECT *
FROM Artikel
WHERE (((Artikel.Artikelname)=[Formulare]![Artikel]![Artikelname]))
ORDER BY Artikel.[Artikel-Nr];

Das Rote ist der WHERE-Teil.
Bei dir ist dieser Teil länger.

Grobe Anleitung (ohne Details):
Und diesen WHERE-Teil (ohne das Wort WHERE) musst du als Öffnungsfilter für deinen Bericht verwenden.
Den Bezug auf deine beiden Listenfelder musst du entsprechend anpassen, je nachdem, von wo aus der Code aufgerufen wird (vom HF oder vom UF), und dann per String-Addition einfügen.

Vielleicht kann es jemand anderer im Forum besser erklären. ;)

Gruß
Josef

« Letzte Änderung: Januar 19, 2018, 15:01:40 von Joss »
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 
Folgende Mitglieder bedankten sich: Carl

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1805
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #7 am: Januar 19, 2018, 16:58:31 »
Hallo Carl,
Poste doch einfach den kompletten SQL-String deiner Abfrage.
Eigentlich bräuchte man aber nur die RecordSource des UFos im
Bericht zu übernehmen, die ist ja schon gefiltert.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #8 am: Januar 21, 2018, 09:17:00 »
Ich habe den Button im Hauptformular, wo auch die zwei Listenfelder sind.

Private Sub btnBerichtA_Click()
DoCmd.OpenReport "berAEAPEinsatzplanA"
End Sub

Und das ist die funktionierende where-condition aus der Abfrage:

WHERE (((tbWochenDaten.WochenID)=[Formulare]![Einsatzplan2_HF]![Liste36]) AND ((tblmassnahmedurchgaenge.ID)=[Formulare]![Einsatzplan2_HF]![Liste4]));

Ich kriegs nicht hin, es kommt bei manchen Kombinationen die Fehlermeldung, dass sich das Feld WochenID uneindeutig auf zwei Tabellen bezieht.

Carl
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #9 am: Januar 21, 2018, 09:20:13 »
Hallo Carl,
Poste doch einfach den kompletten SQL-String deiner Abfrage.
Eigentlich bräuchte man aber nur die RecordSource des UFos im
Bericht zu übernehmen, die ist ja schon gefiltert.
gruss ekkehard

Hallo ekkehard,

hier der komplette String der Abfrage:

SELECT tbWochenDaten.*, tbWochenDaten.WochenID, tblmassnahmedurchgaenge.ID, tblmassnahmedurchgaenge.Maßnahmedurchgang, tblTeilnehmer.AEAPTeilnehmerinfosKurz, tblTeilnehmer.AEAPKurzerprobungsbereichKurz, tblTeilnehmer.TeilnehmerAkronym, tblTeilnehmer.AEAPProjekt, tblTeilnehmer.AEAPFragestellung, tbWochenDaten.WochenMemo
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]));

Wie kann man eine schon gefilterte RecordSource eines UFos in einen Bericht übernehmen?

Carl
Bericht zu übernehmen
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1805
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #10 am: Januar 21, 2018, 16:03:42 »
Hallo Carl,
Beim Öffnen des Berichtes
Me.RecordSource = Forms.HfoName.UFoControlName.Form.RecordSource
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #11 am: Januar 21, 2018, 16:18:41 »
Es funktioniert nicht. Mann, wenn ich doch nur ein Bisschen begabter wäre!

So sieht mein Code "beim öffnen" aus.
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Forms.Einsatzplan2_HF.Einsatzplan2_UF_TN.Form.RecordSource
End Sub

Fehler 2465

Was ist denn "UFoControlName"? Nur der Name vom UFO oder eine Funktion? Carl
« Letzte Änderung: Januar 21, 2018, 16:27:32 von Carl »
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1805
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #12 am: Januar 21, 2018, 16:24:37 »
Control = Steuerelement
siehe http://www.donkarl.com?FAQ4.2
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 333
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #13 am: Januar 21, 2018, 16:38:32 »
Ich komme durch einander. Im Hauptformular sind zwei Listenfelder.

Hauptformular: Einsatzplan2_HF
Steuerelement im Hauptformular: Teilnehmer_UF
Unterformular: Einsatzplan2_UF_TN

und dann die zwei Listenfelder:
Liste36
Liste4

Das Button zum Öffnen des Berichts ist im Hauptformular und öffnet normal mit VBA.


 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1254
Re: übergabe von ausgewählten paramtern an einen bericht
« Antwort #14 am: Januar 21, 2018, 17:47:09 »
In der Abfrage selbst ist das Feld WochenID schon 2x vorhanden, was die Fehlermeldung verursacht haben könnte.

Carl, ich zweifle Deine Begabung nicht an. Du machst Dir das Access-Leben nur unnötig schwer. Wenn Du ernsthaft Datenbanken mit Access entwickeln willst, kommst Du um SQL-Grundkenntnisse einfach nicht herum.
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];
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.

Ansonsten lautet die korrekte Syntax:Private Sub Report_Open(Cancel As Integer)
   Me.RecordSource = Forms!Einsatzplan2_HF.Einsatzplan2_UF_TN.Form.RecordSource
End Sub
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl