none
Bericht auf Basis einer Parameter-Abfrage öffnen...

    Frage

  • Hallo,

    ich habe einen (A03) Bericht, der auf einer Parameter-Abfrage basiert. Den Parameter gebe ich ihm bereits in den OpenArgs mit. Wie bringe ich den Bericht dazu, sich auf Basis der Abfrage zu öffnen mit seinen OpenArgs als Parameter...?

    Danke + Gruß

    Roland

    Mittwoch, 30. November 2011 13:41

Antworten

  • OK, habe eine Lösung gefunden:

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit meiner Variablen als KontaktCode und schließe sie wieder. Dann erst öffne ich den Bericht, der auf dieser Abfrabe basiert.

    Vielen Dank und liebe Grüße

    Roland

     

    • Als Antwort markiert Roland Klassen Donnerstag, 1. Dezember 2011 15:23
    • Tag als Antwort aufgehoben Roland Klassen Donnerstag, 1. Dezember 2011 16:18
    • Als Antwort markiert Roland Klassen Freitag, 2. Dezember 2011 13:44
    Donnerstag, 1. Dezember 2011 15:22
  • Hallo,

    Roland Klassen wrote:

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit
    meiner Variablen als KontaktCode und schließe sie wieder. Dann erst
    öffne ich den Bericht, der auf dieser Abfrabe basiert.

       Alternative waere gewesen, als Kriterium den Formularbezug anzugeben:

       WHERE KontaktCode=[Forms]![DeinFormular]![DeinKontaktFeld]

    Und wo genau hätte ich diese Code-Zeile angebracht - im Open-Ereignis
    des Berichtes oder in der Code-Zeile im Formular, die den Bericht öffnet
    (DoCmd-Anweisung)...?

    In der WHERE-Bedingung des SQL Statements der Abfrage, die du jetzt per
    QueryDef manipulierst. ;-)

    Damit faellt auch deine Manipulation weg.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 1. Dezember 2011 18:00
    Moderator

Alle Antworten

  • Ergänzung zum Problem:

    Bei der Abfrage handelt es sich um eine Kreuz-Tabellen-Abfrage.

    Ich habe versucht, den Record-Source des Berichtes im Open-Ereignis zu definieren, eingebaut mit einer Variablen, die das OpenArgs speichert. Leider kommt dann die Fehlermeldung:

    "Die Kreuztabelle einer nicht feststehenden Spalte kann nicht als Unterabfrage verwendet werden."

    Seufz...

    Gruß Roland

    Mittwoch, 30. November 2011 14:25
  • Hallo,

    Roland Klassen wrote:

    ich habe einen (A03) Bericht, der auf einer Parameter-Abfrage basiert.
    Den Parameter gebe ich ihm bereits in den OpenArgs mit. Wie bringe ich
    den Bericht dazu, sich auf Basis der Abfrage zu öffnen mit seinen
    OpenArgs als Parameter...?

    Erzaehl mal ein bisschen, warum du das so machen willst, und zeig auch mal
    die Abfrage. Zur Info, die RecordSource eines Unterberichts kann zur
    Laufzeit nicht geaendert werden, nur der SQL-Befehl der Abfrage.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Mittwoch, 30. November 2011 16:11
    Moderator
  • Hallo,

    ich habe einen (A03) Bericht, der auf einer Parameter-Abfrage basiert.
    Den Parameter gebe ich ihm bereits in den OpenArgs mit. Wie bringe ich
    den Bericht dazu, sich auf Basis der Abfrage zu öffnen mit seinen
    OpenArgs als Parameter...?

       Erzaehl mal ein bisschen, warum du das so machen willst, und zeig auch mal
       die Abfrage. Zur Info, die RecordSource eines Unterberichts kann zur
       Laufzeit nicht geaendert werden, nur der SQL-Befehl der Abfrage.

    ich stelle gerade ein paar statistische Berichte zusammen. Z. B. gibt es einen Kreuztabellen-Abfrage, die unsere Einkauf-Zahlen bei verschiedenen Händlern nach Monaten (Zeilenüberschriften) und Jahren (Spaltenüberschriften) tabellarisch darstellt. Als Kriterium gebe ich im Abfrage-Entwurf den [KontaktCode] (Datentyp: LongInteger) des Lieferanten ein, so dass die Ausgabe lediglich die Zahlen dieses Lieferanten beinhaltet. Als Parameter-Abfrage funktioniert das auch, nur dann muß ich ja jedesmal direkt den KontaktCode eingeben, damit es funktioniert. Ich möchte jedoch in einem Formular bequem in einem Kombinationsfeld den Lieferanten (mit seinem hinterlegten KontaktCode) auswählen und mit diesem den Bericht mit der zugrundeliegenden Abfrage öffnen...

    Wie kann ich das am besten umsetzen?

    Danke + Gruß

    Roland

    Donnerstag, 1. Dezember 2011 14:06
  • OK, habe eine Lösung gefunden:

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit meiner Variablen als KontaktCode und schließe sie wieder. Dann erst öffne ich den Bericht, der auf dieser Abfrabe basiert.

    Vielen Dank und liebe Grüße

    Roland

     

    • Als Antwort markiert Roland Klassen Donnerstag, 1. Dezember 2011 15:23
    • Tag als Antwort aufgehoben Roland Klassen Donnerstag, 1. Dezember 2011 16:18
    • Als Antwort markiert Roland Klassen Freitag, 2. Dezember 2011 13:44
    Donnerstag, 1. Dezember 2011 15:22
  • Hallo,

    Roland Klassen wrote:

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit
    meiner Variablen als KontaktCode und schließe sie wieder. Dann erst
    öffne ich den Bericht, der auf dieser Abfrabe basiert.

    Alternative waere gewesen, als Kriterium den Formularbezug anzugeben:

    WHERE KontaktCode=[Forms]![DeinFormular]![DeinKontaktFeld]

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 1. Dezember 2011 15:57
    Moderator
  • Hallo,

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit
    meiner Variablen als KontaktCode und schließe sie wieder. Dann erst
    öffne ich den Bericht, der auf dieser Abfrabe basiert.

       Alternative waere gewesen, als Kriterium den Formularbezug anzugeben:

       WHERE KontaktCode=[Forms]![DeinFormular]![DeinKontaktFeld]

    Und wo genau hätte ich diese Code-Zeile angebracht - im Open-Ereignis des Berichtes oder in der Code-Zeile im Formular, die den Bericht öffnet (DoCmd-Anweisung)...?

    Danke + Gruß

    Roland

    Donnerstag, 1. Dezember 2011 16:18
  • Hallo,

    Roland Klassen wrote:

    Öffne im ProgrammCode die Abfrage als QueryDef, ändere die QueryDef mit
    meiner Variablen als KontaktCode und schließe sie wieder. Dann erst
    öffne ich den Bericht, der auf dieser Abfrabe basiert.

       Alternative waere gewesen, als Kriterium den Formularbezug anzugeben:

       WHERE KontaktCode=[Forms]![DeinFormular]![DeinKontaktFeld]

    Und wo genau hätte ich diese Code-Zeile angebracht - im Open-Ereignis
    des Berichtes oder in der Code-Zeile im Formular, die den Bericht öffnet
    (DoCmd-Anweisung)...?

    In der WHERE-Bedingung des SQL Statements der Abfrage, die du jetzt per
    QueryDef manipulierst. ;-)

    Damit faellt auch deine Manipulation weg.

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 1. Dezember 2011 18:00
    Moderator
  • Hallo,

    ah ja, ok. Dann kann ich mit beiden Lösungen leben. :-)

    Vielen Dank + Gruß

    Roland

    Freitag, 2. Dezember 2011 08:21