Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Domm am November 28, 2017, 13:11:39

Titel: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 28, 2017, 13:11:39
Hallo, ich schon wieder...
Kann man mir noch helfen???
Die Situation:
Von einem Formular aus soll ein ungebundener Bericht geöffnet werden.
In diesem sind mehrere UnterB mit unterschiedlichen Filtern.
Beim Öffnen sollen aber alle UnterB  nach zwei weiteren Kriterien gefiltert werden: WocheAktuell und TagAktuell.
Daher habe ich im HauptB zwei ungebundene Textfelder gleichen Namens platziert (Format: Allgemeine Zahl). Die UnterB beziehen sich im Kriterium auf diese Werte.
Der Code zum Öffnen:
DoCmd.OpenReport "rptEinteilung", acViewPreview, , _
                     "[WocheAktuell] = '" & Me!AuswahlWoche & "' " & _
                 "And [TagAktuell] = '" & Me!AuswahlTag & "'"

Der Bericht wird ohne Daten angezeigt. Wenn ich den Bericht händisch öffne, zeigt er die ungebundenen Felder natürlich auch leer an. Wenn ich die Felder in Steuerelementinhalt mit einer Zahl fülle, werden die UnterB korrekt angezeigt.

Habe verschiedene Berichte erstellt mit immer dem gleichen Ergebnis. Wenn ich einen gebundenen Bericht erstelle, in dem ich als Filter die oben benannten Textfelder einstelle, werden die Parameterwerte eingefordert, welche eigentlich per VBA übermittelt werden sollen. Ist das verständlich?
Egal, wie ich es anstelle, die ungebundenen Textfelder  werden nicht gefüllt.
Google hat unzähliche Threads zum Thema ,,Bericht mit mehreren Filtern", aber nix passt auf mein Problem...
Weiß jemand einen Rat?
Dankeschön im Voraus!

Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 28, 2017, 14:56:47
Hallo,
Einen ungebundenen Report kannst du nicht filtern, - gibt ja keine Datensätze.
Übergebe die beiden Werte mit dem Parameter "OpenArgs", und fülle die beiden Textfelder damit
DoCmd.OpenReport _
              ReportName:="rptEinteilung", _
              View:=acViewPreview, _
              OpenArgs:= Me!AuswahlWoche & ";" & Me!AuswahlTag


Private Sub Report_Open(Cancel As Integer)
    Dim vOA as Variant
    vOA = Split(Me.OpenArgs, ";")
    Me!Textfeld1 = vOA(0)
    Me!Textfeld2 = vOA(1)
'@edit
'evtl. musst du die Unterberichte noch aktualisieren
    Me!upcErsterUB.Form.Requery

End Sub


gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 28, 2017, 18:12:59
Grüß Dich, Ekkehard! Schön, dass Du mir hilfst.
Nach Eintrag der Codes finden sich die zwei. Soweit schon ein Erfolg.
Allerdings gibts eine Fehlermeldung (2448): Sie können diesem Objekt keinen Wert zuweisen.
Das betraf im ersten Versuch das erste Textfeld; als ich die Zeile mit Hochstrich deaktiviert habe, kam die Meldung auch beim zweiten.
Änderungen an Format der Textfelder haben nichts bewirkt, auch Einstellungen am Bericht haben nicht geholfen.
Allerdings möchte ich noch loswerden, dass ich nie und nimmer ohne Hilfe auf Deine Argumentation gekommen wäre! Nach meinen Vorstellungen hatte ich gedacht, man kann die Felder ganz leicht füllen...
Als es dann nicht ging, war ich der Meinung, dass nur irgendwo ein Komma fehlt oder ein Hochstrich zuviel ist. Siehste mal!
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 29, 2017, 12:53:22
Hallo,
ZitatAllerdings gibts eine Fehlermeldung (2448): Sie können diesem Objekt keinen Wert zuweisen.
Schau mal ob bei den beiden Textfeldern irgendwas in der Eigenschaft
"Steuerlementinhalt" drin steht. Das müsstest du löschen.
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Lachtaube am November 29, 2017, 13:18:31
Ich würde dazu tendieren, die Parameter a la FAQ 3.15 (http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm#3.15) zu übermitteln.
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 29, 2017, 13:55:02
Hallo Ihr Zwei,
leider bin ich im Mom unterwegs und hab keinen Zugriff auf die DB.
Morgen früh folge ich der Empfehlung von Ekkehard, obwohl ich sicher bin, die Textfelder wieder jungfräulich gemacht zu haben.
Die Lösung von DonKarl werde ich erst mal verinnerlichen. Vermutlich muss ich mir dazu nochmal Hilfe holen; die Aussage kann ich so einfach nicht auf mein Beispiel umbauen. (Kenntnisstand Newbie)
Vielen Dank jedenfalls erstmal für Eure Zeit.
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 29, 2017, 14:42:40
Hallo,
ZitatDie Lösung von DonKarl
ist sicher die elegantere. Du brauchst dann zwei davon
Public Function AuswahlWoche() ' hier evtl. noch den Typ angeben
   AuswahlWoche = Nz(Forms.DeinFormular.AuswahlWoche, ErsatzWoche)
End Function

Public Function AuswahlTag() ' hier evtl. noch den Typ angeben
   AuswahlTag = Nz(Forms.DeinFormular.AuswahlTag, ErsatzTag)
End Function

Das Formular muss dazu aber immer geöffnet sein.
Mit diesen beiden Functions ersetzt du in der Abfrage deines Berichtes
die jetzigen Platzhalter (Textfelder). Bei Fragen zeige die Abfrage (SQL).
Die beiden ungebundenen Textfelder entfallen dadurch ersatzlos.
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 29, 2017, 20:08:22
Hallo Ekkehard,
der Bericht wird vom Formular aus geöffnet, wenn dort die Parameter vorher eingestellt wurden.
Also bedeutet, es ist grundsätzlich geöffnet. Das war auch mein gedanklicher Ansatz: übergebe die Variablen aus dem Formular an die zwei Textfelder...
Das Thema ist Dir sicher noch bekannt: Abiturienten sollen für ihr Kolloquium eingeteilt werden.
Im o.g. Form wird die Einteilung auf die Prüfungsräume und Uhrzeiten vorgenommen.
Der Bericht soll gefiltert anzeigen,
-in welcher der beiden Prüfungswochen
-an welchem (der fünf) Wochentage
-vor- oder nachmittags die Kurse stattfinden.
Die Tageszeit kann vernachlässigt werden, da pro Tag grundsätzlich nur vor- oder nachmittags geprüft wird.
Also zwei Variable.
Ungefiltert ergibt das 10 Berichtsseiten; damit wäre mein Problem schon aus der Welt.
Aber eleganter ist es natürlich, den jeweiligen Tag filtern zu können.
Schönen Abend!
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am November 30, 2017, 00:49:34
Hallo Domm,

kannst du die Datenquelle(n) der Unterberichte nicht filtern bevor du den Bericht aufrufst.

Datenquelle Bericht1 z.B. qryBericht1.sql = "select tab.* from tab  where ...."

Frithjof
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 30, 2017, 13:30:19
Hallo, schnell mal die Mittagspause kreativ auffüllen...
@Beaker s.a.
Der Hauptbericht hat keine SQL (LOGO). Die Unterberichte sind bis auf den Filter <Position> identisch:
SELECT qryKandKursUnion.KandKursID, [Kandidat] & " (" & [MemoA] & ")" AS AnzKandidat, qryKandKursUnion.KursA, qryKandKursUnion.WocheA, qryKandKursUnion.TagA, qryKandKursUnion.TageszeitA, Format([StdBeginn],"Short Time") AS AnzStdBeginn, Format([StdEnde],"Short Time") AS AnzStdEnde, Format([DauerPause],"Short Time") AS AnzPause, qryKandKursUnion.PositionA, tblZimmer.Zimmer
FROM ((qryKandKursUnion INNER JOIN qryZeitenUndPausen ON qryKandKursUnion.StundeA = qryZeitenUndPausen.ZeitID) INNER JOIN tblZimmer ON qryKandKursUnion.ZimmerA = tblZimmer.ZimmerID) INNER JOIN tblWoche ON qryKandKursUnion.WocheA = tblWoche.WocheID
WHERE (((qryKandKursUnion.WocheA)=[AuswahlWoche]) AND ((qryKandKursUnion.TagA)=[AuswahlTag]) AND ((qryKandKursUnion.PositionA)=1));


Zu den Anhängen:
Im Form sind OBEN 3 Optionsgruppen; die sind für die weitere Zuordnung und! für die Filter des Berichtes vorgesehen.

Was hältst Du von der Möglichkeit, eine tblTage zu gründen, die als Datensatzquelle für den Bericht dient. Dann muss ich zwar die Struktur der Verknüpfungstabelle ändern, hätte aber einen nachvollziehbaren Filterausdruck.
Im Mom werden- ausgehend vom Montag der Prüfungswochen- die weiteren 4 Tage berechnet. Damit hab ich zwei Filterwerte: WocheA und B, dazugehörige Tage 1 bis 5. Mit der neuen Tab hab ich nur noch einen Filterwert. weißt Du, wie ich das meine?

@Frithjiof
schön, dass du dich einmischst!
Die Datenquellen sind im Form gefiltert (siehe Anhang). Jetzt muss diese "Tabelle" nur noch auf einen Bericht projeziert werden. Natürlich fehlt noch das Layout und diverse Informationen, aber inhaltlich wäre es OK, das Form genau so auszudrucken.

Nur zum Verständnis (falls die Darstellung zu Grundsatzdiskussionen verleitet): [Position] legt fest, in welcher Spalte der Lehrer den jeweiligen Kurs anzeigen lassen möchte. Die Spaltenanzahl von 10 ist mehr als genug. Pro Raum und Tageszeit werden nie mehr als 5 Schüler geprüft.
Wenn ich die Kriterien lösche, habe ich statt einer Seite max. 10. Das ist insofern OK., weil sowieso jeder Tag an die Kursleiter verteilt werden muss. Aber mein Kampf gilt nicht dem Abnicken, sondern der Lösung. Falls Ihr sowieso nix Besseres zu tun habt...  :-*
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am November 30, 2017, 14:17:56
Hallo Domm.
Am Einfachsten erscheint es mir für jeden Unterbericht eine Abfrage zu erstellen.

qryUBE1, qryUBE2 ...

und vorm Öffnen des Berichts in die Abfragen den SQLstring zu schreiben,



varPositionA=1

strsql= " SELECT qryKandKursUnion.KandKursID, [Kandidat] & ' (' & [MemoA] & ')' AS AnzKandidat, qryKandKursUnion.KursA, qryKandKursUnion.WocheA, qryKandKursUnion.TagA, " _
& " qryKandKursUnion.TageszeitA, Format([StdBeginn],'Short Time') AS AnzStdBeginn, Format([StdEnde],'Short Time') AS AnzStdEnde, Format([DauerPause],'Short Time') AS AnzPause, " _
& " qryKandKursUnion.PositionA, tblZimmer.Zimmer " _
& " FROM ((qryKandKursUnion INNER JOIN qryZeitenUndPausen ON qryKandKursUnion.StundeA = qryZeitenUndPausen.ZeitID) " _
& " INNER JOIN tblZimmer ON qryKandKursUnion.ZimmerA = tblZimmer.ZimmerID) INNER JOIN tblWoche ON qryKandKursUnion.WocheA = tblWoche.WocheID " _
& " WHERE (((qryKandKursUnion.WocheA)=[AuswahlWoche]) AND ((qryKandKursUnion.TagA)=[AuswahlTag]) AND ((qryKandKursUnion.PositionA)=" & varPositionA & "));"

qryUBE1.sql = strsql



Frithjof
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 30, 2017, 14:51:54
Hallo,
Es ging doch darum, das hier statt auf Felder im Hauptbericht, die IMO
auch so
Me.Parent.Textfeld
referenziert sein sollten, wenn das die Abfrage eines Unterberichtes ist,
auf Funktionen zurückgegriffen werden soll.
Das sähe dann so aus. Unter der Voraussetzung das [AuswahlWoche] und [AuswahlTag] die Textfelder waren
ZitatWHERE (((qryKandKursUnion.WocheA)=AuswahlWoche()) AND ((qryKandKursUnion.TagA)=AuswahlTag()) AND ((qryKandKursUnion.PositionA)=1))
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am November 30, 2017, 15:36:51
Jetzt muss ich Eure Beiträge erst mal zerpflücken, um sie zu verstehen.
Frage: Werden SQL- Anweisungen auch als Code dargestellt?
@Frithjiof
Jeder UB greift auf die gleiche Abfrage zu (qryKandKursUnion) , das Kriterium in [Position] wird dann im Form verankert. Meintest Du, ich soll 10 query anlegen?
Wie ich sehe, hast Du die Variable (1) nach oben gelegt. Hat das eine tiefere Bewandnis auf die Abläufe oder folgst Du damit nur den Konventionen?
Was passiert mit der Zeile qryUBE1.sql = strsql?
@Beaker s.a.
Leider ist mir bei Deinem Satz die Puste ausgegangen. ich bin doch bloß ein Hausl ;)
Meinst Du, der Zugriff auf die Variablen soll nicht über das Kriterium in den UB, sondern über den Code beim Öffnen des HB erfolgen?
Soll ich noch etwas zum Aufklären anhängen?
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 30, 2017, 17:13:08
Hallo Domm,
ZitatLeider ist mir bei Deinem Satz die Puste ausgegangen
Sorry, zu viel auf einmal. Also noch mal langsam.
Du wolltest zwei Felder auf einem HBer befüllen, mit denen der UBer
gefiltert wird.
Dann kam der Vorschlag von Lachtaube bezügl. Function in der Abfrage
(DS-Herkunft des UBer). Das geht dann ohne die beiden Textfelder.
Du hattest diese beiden Felder in deiner Abfrage so
ZitatWHERE (((qryKandKursUnion.WocheA)=[AuswahlWoche]) AND ((qryKandKursUnion.TagA)=[AuswahlTag]) AND ((qryKandKursUnion.PositionA)=1));
Wenn das die beiden Felder auf dem HBer sind, müssen die mit
Me.Parent.NameTextfeld
angesprochen werden (Me = UBer, Parent = HBer).

Bezügl. Einsatz der Function(s) hatte ich geschrieben,
ZitatMit diesen beiden Functions ersetzt du in der Abfrage deines Berichtes
die jetzigen Platzhalter (Textfelder)
was dann so aussieht wie in meinem letzten Post
ZitatWHERE (((qryKandKursUnion.WocheA)=fctAuswahlWoche()) AND ((qryKandKursUnion.TagA)=fctAuswahlTag()) AND ((qryKandKursUnion.PositionA)=1))
(Den Functions habe ich diesmal ein Prefix verpasst damit es deutlicher
wird. Hatte Lachtaube schon so, sorry für Versäumnis.)
Hoffe es ist jetzt klarer was ich ausdrücken wollte. Es sind halt zwei Wege,
die zum Erfolg führen sollten.
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am November 30, 2017, 17:17:49
Hallo Domm.
Jeder Unterbericht enthält ja ein QueryDef als Datensatzquelle. Mit meinem Vorschlag muss daher nichts zusätzlich gemacht werden. Die Datensatzquellen werden lediglich mit einem eigenen Namen versehen und so über das Datenbankfenster und für VBA einfach zugänglich.
Es ist auch möglich die Datensatzquelle in den jeweiligen Unterberichten zu manipulieren.
Es reicht aus ein beliebiges QueryDef 10 mal zu kopieren und z.B. so zu benennen <qryUBE1> -  <qryUBE10>.

Der sqlstring wird vorm Laden des Berichts  in die  QueryDefs geschrieben

Hier jetzt der ganze Code
Sub test()
    Dim dbs As DAO.Database
    Dim qry As DAO.QueryDef
    Dim strSQL As String
    Dim i As Integer
   
    Set dbs = CurrentDb

    For i = 1 To 10    'für zehn QueryDefs  <qryUBE1> -  <qryUBE10>
       
        Set qry = dbs.QueryDefs("qryUBE" & i) ' Abfrage qryUBE1 öffen
       
        strSQL = "SELECT qryKandKursUnion.KandKursID, [Kandidat] & ' (' & [MemoA] & ')' AS AnzKandidat, qryKandKursUnion.KursA, qryKandKursUnion.WocheA, " _
            & " qryKandKursUnion.TagA, qryKandKursUnion.TageszeitA, Format([StdBeginn],'Short Time') AS AnzStdBeginn, Format([StdEnde],'Short Time') AS AnzStdEnde,  " _
            & " Format([DauerPause],'Short Time') AS AnzPause, qryKandKursUnion.PositionA, tblZimmer.Zimmer " _
            & " FROM ((qryKandKursUnion INNER JOIN qryZeitenUndPausen ON qryKandKursUnion.StundeA = qryZeitenUndPausen.ZeitID) " _
            & " INNER JOIN tblZimmer ON qryKandKursUnion.ZimmerA = tblZimmer.ZimmerID) INNER JOIN tblWoche ON qryKandKursUnion.WocheA = tblWoche.WocheID " _
            & " WHERE (((qryKandKursUnion.WocheA)=[AuswahlWoche]) AND ((qryKandKursUnion.TagA)=[AuswahlTag]) AND ((qryKandKursUnion.PositionA)=" & i & "));"
       
        qry.SQL = strSQL                ' neue Sql Anweisung reinschreiben
        qry.Close
    Next i
    Set qry = Nothing
    dbs.Close
    Set dbs = Nothing
End Sub


Wenn [AuswahlWoche] und [AuswahlTag] Feldwerte aus dem Formular sind kann man die auch aus der Abfrage rauszeihen und durch die Werte ersetzten:

          & " WHERE (((qryKandKursUnion.WocheA)=" & me.auswahlwoche & ") AND ((qryKandKursUnion.TagA)=" & me.auswahltag & ") AND ((qryKandKursUnion.PositionA)=" & i & "));"


Frithjof
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am November 30, 2017, 18:52:48
Hallo Frithjof,
Lies doch noch mal den Eröffnungsthread und
ZitatJeder UB greift auf die gleiche Abfrage zu
Es geht darum diese Abfrage mit zwei weiteren Werten zu filtern.
Diese Abfrage ist DS-Herkunft eines gebundenen Unterberichts auf
einem ungebundenen Hauptbericht.
Da braucht es IMO keine x Abfragen und mit "me.auswahlwoche "
kommst du da auch nicht weiter. Ich denke, dass da nur die WHERE-
Klausel wie gezeigt angepasst werden muss.
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am November 30, 2017, 20:05:51
Hallo Ekkehard.

Zitat von: Beaker s.a. am November 30, 2017, 18:52:48

Lies doch noch mal den Eröffnungsthread ...

eine Gute Idee:)

Aber zwischendurch (Antwort #9) wurde auch "Position" als variable Größe genannt und von 10 Unterberichten gesprochen.

Zitat von: DommBeim Öffnen sollen aber alle UnterB nach zwei weiteren Kriterien gefiltert werden: WocheAktuell und TagAktuell.
Daher habe ich im HauptB zwei ungebundene Textfelder gleichen Namens platziert (Format: Allgemeine Zahl). Die UnterB beziehen sich im Kriterium auf diese Werte.

Wenn es nur darum geht die Textfelder aus dem Bericht mit den Werten aus dem Formular zu füllen  kann man doch einfach darauf verweisen. z.B.:
=[Formulare]!MeinFormular!Auswahlwoche

Es klingt aber so als wären die ungebundenen Textfelder Îm Bericht lediglich eine "Notlösung".

Abgesehen davon, dass ja auch in den Abfragen direkt auf das Formularfeld (=[Formulare]!MeinFormular!Auswahlwoche ) verweisen  werden kann:

M.E. ist es relativ simpel die SqlStrings oder den SqlString mithilfe der kleinen VBA-Routine anzupassen. Insgesamt halte ich das auch für sauberer, als über Funktionen oder Verweise die zwei Werte an die Abfrage zu übergeben.

Hinzu kommt, der Bericht kann dann auch jederzeit geöffnet werden, ohne dass das Formular geöffnet sein muss.

Frithjof
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am Dezember 01, 2017, 11:02:07
Hallo Ihr Zwei
ich folge Euren Schlagabtausch mit großem Interesse!
Es scheinen sich zwei Lager zu bilden- @Beaker s.a.. Übergebe die Werte in die Funktion, welche beim Öffnen des Berichtes ausgewertet werden / @Frithjiof: Lege in der SQL fest, woher die Textfelder ihren Steuerelementinhalt bekommen.
Die erwähnten Felder sehe ich eigentlich nicht als Notlösung. Ich hatte eher vermutet, dass ich die Variablen aus dem ÜbergabeForm ganz komfortabel beim Öffnen des HB hineinkopieren kann.
So in dem Sinne:
Private Sub Report_Open(Cancel As Integer)
    Me!AuswahlWoche = frm4HfZuordnungZeiten!AuswahlWoche
    Me!AuswahlTag = frm4HfZuordnungZeiten!AuswahlTag
End Sub


[Position]ist fix und spielt beim Filter keine Rolle mehr.
Oder:
Private Sub cmdForm5_Click()
    DoCmd.OpenReport "rpt4HrTagKursKand", acViewReport
        Me!AuswahlWoche = [Formulare]![frm4HfZuordnungZeiten]![AuswahlWoche]
        Me!AuswahlTag = [Formulare]![frm4HfZuordnungZeiten]![AuswahlTag]
End Sub

Dass es jetzt nicht ganz so einfach ist, durfte ich nun schon feststellen. Das Textfeld im HB wird schlichtweg nicht erkannt.
Lieber Ekkehard, lieber Frithjiof, ich hab mal eine MicroDB angehängt. Falls es Eure Zeit erlaubt: Bitte füllt mal die TestDB mit Euren Ideen, dann komme ich am ehesten darauf, was ich machen muss. Sonst werden wir noch ewig meine Fehler bei der Umsetzung aufspüren müssen.
Danke schon mal und ein erholsames WE!
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am Dezember 01, 2017, 13:57:10
Schreib doch einfach im Entwurf des Berichtes ins Textfeld (Steuerelementinhalt)
=  [Formulare]![frm4HfZuordnungZeiten]![AuswahlTag]

In der Abfrage kann ebenfalls auf  "[Formulare]![frm4HfZuordnungZeiten]![AuswahlTag]" verwiesen werden.

Folgende Sub kann nicht funktionieren
Private Sub cmdForm5_Click()
    DoCmd.OpenReport "rpt4HrTagKursKand", acViewReport
        Me!AuswahlWoche = [Formulare]![frm4HfZuordnungZeiten]![AuswahlWoche]
        Me!AuswahlTag = [Formulare]![frm4HfZuordnungZeiten]![AuswahlTag]
End Sub


weil in dem Objekt nach  "Me!AuswahlTag" gesucht wird, in dem sich die Sub befindet, also im Formular.

Du müsstes ein Objekt definieren
Private Sub cmdForm5_Click()
    dim rpObject as object
    DoCmd.OpenReport "rpt4HrTagKursKand", acViewReport
    set  rpObject = reports("rpt4HrTagKursKand")
    rpObject!AuswahlWoche = [Forms]![frm4HfZuordnungZeiten]![AuswahlWoche]
    rpObject!AuswahlTag = [forms]![frm4HfZuordnungZeiten]![AuswahlTag]
End Sub


Wenn "[forms]![frm4HfZuordnungZeiten]![AuswahlTag]" das aktuelle Formular kennzeichnet  dann schreibst du besser  me!AuswahlTag.

Frihtjof

Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am Dezember 01, 2017, 15:24:26
Jou, jetzt gehts!!!  ;D
Im ersten Versuch die Textfelder mit dem Verweis gefüllt, da kam #Name?
Danach diesen Verweis als Kriterium in die Abfrage eingetragen- und RUMMS (siehe Anhänge)

Ekkehard, kannst Du mit diesem Verfahren leben oder siehst Du Alternativen, die einem angehenden Access-Oberguru wie mir besser zu Gesicht stehen würden?
Auf jeden Fall bin ich sehr dankbar für den Verlauf!
Euch schon mal ein Kerzlein angezündt. Natürlich erst am Sonntag!
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am Dezember 01, 2017, 16:30:24
Hallo Domm,
Anbei deine DB. Da kannst du jetzt drei/vier Möglichkeiten der Wert-
Übernahme/-gabe ausprobieren. Den erste Vorschlag mit OpenArgs
habe ich weggelassen.
Ich hoffe es hilft auch für die Zukunft.
gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am Dezember 01, 2017, 17:38:54
Hallo Domm
Zitat von: Domm am Dezember 01, 2017, 15:24:26
Im ersten Versuch die Textfelder mit dem Verweis gefüllt, da kam #Name?
1.
#Name bedeutet: Access findet den Verweis nicht.
Wenn du dir über die Syntax des Verweises nicht sicher bist, empfiehlt es sich den Access Ausdrucksgenerator zu benutzen.

Du markierst das Feld in welches der Ausdruck hinein soll, und aktivierst unter <Eigenschaften> <Daten> das Feld Steuerelementinhalt. Dort klickst du ganz rechts auf die Schaltfläche mit den drei Punkten. Es öffnet sich der Ausdrucksgenerator.

Im Bereich Ausdruckselement kannst du das Formular wählen auf dem sich das Textfeld dessen Wert benötig wird befindet.  Über die Liste Ausdruckskategorien kommst du an das Feld selbst ran. Und in der Liste Ausdruckswerte finden sich alle möglichen Werte.

2.
Um die Verwirrung komplett zu machen noch zu den Openargumenten.

Übergabe von zwei  Werten
Aufruf aus dem Fromular
mit
DoCmd.OpenReport "rptest", acViewPreview, , , , "10;20"


Im Report folgende Prozedur  unterbringen: 


Private Sub Report_Load()
    Dim xx
    If Nz(Me.OpenArgs, "") <> "" Then
        Set xx = Split(Me.OpenArgs, ";")
        Me.Text0 = xx(0)
        Me.Text2 = xx(1)
    End If
End Sub


Frithjof

Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am Dezember 01, 2017, 17:52:01
ZitatUm die Verwirrung komplett zu machen noch zu den Openargumenten.
Was ich schon in #1 gezeigt hatte.
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am Dezember 02, 2017, 02:47:54
Ihr seid einfach die Besten!  :-*
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am Dezember 02, 2017, 02:58:49
@Frithjof. Der Ausdrucksgenerator war mir von jeher ein Graus. Ich hab da noch nie was Brauchbares entnehmen können. Vielleicht ist Dein Hinweis darauf Anlass, sich mal näher mit dieser Materie zu beschäftigen.
@Beaker s.a. Bin grad saumüde. Aber versprochen: ich schau mir Deine Lösungsvorschläge an, sobald Termine , Weib und Kinder mich lassen. Wär doch gelacht, wenn ich nicht hinter das Geheimnis Eures Erfolgs kommen würde...
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am Dezember 02, 2017, 13:56:18
Hallo Domm,
Zitatsich mal näher mit dieser Materie zu beschäftigen.
Halte ich für überflüssig, denn der Ausdrucksgenerator ist wirklich
gräuslich. Einfache Ausdrücke bekommt man auch ohne zustande,
und wenn's kompliziert wird geht's mit VBA einfacher.
Zitatdas Geheimnis Eures Erfolgs
üben, üben, üben ...

gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am Dezember 02, 2017, 14:15:28
Hallo Ekkehard
Zitat von: Beaker s.a. am Dezember 01, 2017, 17:52:01
ZitatUm die Verwirrung komplett zu machen noch zu den Openargumenten.
Was ich schon in #1 gezeigt hatte.

Ohh tatsächlich,  sorry, ich sollte Treads lesen bevor ich antworte ..schäm.

Aber warum hat dein Vorschlag  bei Domm nicht funktioniert?

Weil die Anweisung
Me!AuswahlTag
offensichtlich nichts fruchtete.

Mit dem ! wird auf die Datenquelle verwiesen und nicht auf das Textfeld im Formular/ Report.
Richtig wäre  gewesen
Me.Textfeldname

Frithjof
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Frithjiof am Dezember 02, 2017, 14:25:34
Hallo Freunde
Zitat von: Domm am Dezember 02, 2017, 02:58:49
Der Ausdrucksgenerator war mir von jeher ein Graus. Ich hab da noch nie was Brauchbares entnehmen können. Vielleicht ist Dein Hinweis darauf Anlass, sich mal näher mit dieser Materie zu beschäftigen.
Zitat von: Beaker s.a. am Dezember 02, 2017, 13:56:18
Halte ich für überflüssig, denn der Ausdrucksgenerator ist wirklich
gräuslich.

Grauslich oder nicht.

Wer nicht genau weiß wie auf ein bestimmtes Feld in einem Formular zugegriffen werden kann findet hier durchaus brauchbare Hilfe.

Auch zu tiefverschachtelte UFOs werden hier sichtbar weil Access solche nicht mehr richtig darstellen kann.

Frithjof


Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Beaker s.a. am Dezember 02, 2017, 15:21:00
Hallo Frithjof,
ZitatWer nicht genau weiß wie auf ein bestimmtes Feld in einem Formular zugegriffen werden kann
soll sich den Objekt-Katalog zu Gemüte führen. (@Domm F2 im VBE)

Bezügl. "!" und "." werde ich mich nicht in die Diskussion einlassen.
Nur soviel, als ich anfing mit A2K habe ich mich an Karls FAQ gehalten.
Als dann die Diskussion darüber aufkam, bin ich in meinen Anwendungen
auf die indexierte Schreibweise
Me.Controls("Feldname")
übergegangen.

Mit dem Zugriff auf Tabellen- bzw. Formfeld hat das IMO nichts zu tun.
Dieser Zugriff wird durch die Benamsung des Formfeldes geregelt.
Unter der Voraussetzung eines gebundenen Forms und gebundenen Feldes
gilt (nach meiner Erfahrung):
Hat das Formfeld den gleichen Namen wie das Tabellenfeld gibt es in der
Form-Controls-Auflistung nur ein Control mit diesem Namen. Dieses
repräsentiert das Formfeld-Control mit allen Eigenschaften.
Bei unterschiedlichen Namen gibt es beide in der Auflistung. Das Formfeld-Control
hat dann wieder alle Eigenschaften, das Tabellenfeld-Control nur die Eigenschaft .Value
Tabellenfelder die zwar in der RecordSource des Form enthalten sind,
aber nicht in einem Formfeld angezeigt werden, tauchen in der Auflistung
nur als Tabellenfeld-Control auf (einzige Eigenschaft wie oben).

Erweitertes Beispiel anbei. Funzt sowohl mit "!" als auch mit "."

gruss ekkehard
Titel: Re: Ungebundenen Hauptbericht mit zwei Filtern
Beitrag von: Domm am Dezember 02, 2017, 17:57:56
@Beaker s.a.
Hallo, hab mir eben mal (oberflächlich) die verschiedenen Möglichkeiten zu Gemüte geführt. <frmUngOhneTextfeldFormularbezugInAbfrage> entspricht der Lösung von Frithjiof; die im Moment aus Gründen des Verständnisses favorisierte Variante. Da die anderen auch funktionieren, sind sie es durchaus Wert, näher beleuchtet zu werden. Erstaunlicherweise bieten sich jetzt, nach unermüdlichem Graben gleich mehrere Lösungen an. Ich hatte mich schon gewundert, dass auf der Ebene, in der Ihr euch bewegt, diese Herausforderung so jungfräulich schien. Vielleicht lags ja auch nur an meiner ungenauen Situationsbeschreibung.
Mit dem Häkchen "ERLEDIGT" hat die aus Eurer Sicht katastrophale DB einen Lehrer glücklich und mich um vieles Schlauer gemacht. Ekkehard, vielleicht hast Du es schon gemerkt- keine Umlaute mehr in den Benamsungen und den Knoten mit dem Mehrfachindex hab ich auch gelöst.
In dem Sinne bis bald!