openArgs

…ja tut mir leid, ich bin kein Profi…
aber ich brauch echt Eure Hilfe…
Es geht nochmals um die OpenArgs Methode

Ich öffne über eine Schaltfläche den Bericht „Prozessbeurteilung IKS“.
Da der Bericht aber auf einer Abfrage basiert ist natürlich für jeden Datensatz ein Bericht vorhanden.
Wenn ich aber beim öffnen zu dem Bericht springen möchte, der der stLinkCriteria entspricht, der ich vorher die Variable Prozess zugewiesen habe, dann funktioniert das einfach nicht.
Was mach ich denn falsch ?

Dim stDocName As String
Dim stLinkCriteria As Variant
Dim Prozess As String

stDocName = „Prozessbeurteilung IKS“
stLinkCriteria = Me!Text1.Value

DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria

Außerdem gibt es doch in der QuickInfo das Parameter …[WhereCondition]…

kann ich das nicht nutzen um zu dem angegebenen Bericht zu springen ?
Die Hilfe hab ich natürlich gelesen, und auch sonst in den einschlägigen Foren gesucht…
Bitte lasst mich nicht hängen !
Christian

Hallo,

die WHERECONDITON bei einem Bericht/Formular filtert die entsprechende Datenbasis. I.d.F. wenn die Bedingung korrekt angeben wird, werden auch nur die Berichtsseiten angezeigt, die der Bedingung entsprechen.

Wahrscheinlich ist dies genau das was du suchst. Die Syntax der Bedingung folgt der SQL-Syntax der WHERE-CLAUSE.

Tschau
Peter

Hallo,

naja, dann werd ich nochmal…

Es geht nochmals um die OpenArgs Methode

Warum??

Ich öffne über eine Schaltfläche den Bericht
„Prozessbeurteilung IKS“.

OK

Da der Bericht aber auf einer Abfrage basiert ist natürlich
für jeden Datensatz ein Bericht vorhanden.

Quatsch. :wink: Ein Bericht basiert (kann) auf einer Abfrage, die Datensätze aus Tabellen liefert. Diese Datensätze werden dann im Bericht angezeigt. Es es existiert (in diesem Szenario) nur EIN Bericht, der mehrere Datensätze anzeigt.

Wenn ich aber beim öffnen zu dem Bericht springen möchte,

Zu einem Bericht kann man nicht „springen“ den kann man nur öffnen.

der der stLinkCriteria entspricht, der ich vorher die Variable
Prozess zugewiesen habe, dann funktioniert das einfach nicht.

Das ist ganz unverständlich… Die Variable „Prozess“ ist nur als String deklariert und nirgends initialisiert und verwendet.

Was mach ich denn falsch ?

Eigentlich alles… :wink:

Dim stDocName As String
Dim stLinkCriteria As Variant
Dim Prozess As String

stDocName = „Prozessbeurteilung IKS“
stLinkCriteria = Me!Text1.Value

DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria

Außerdem gibt es doch in der QuickInfo das Parameter
…[WhereCondition]…

Das ist der Parameter hinter dem 3. Komma…

kann ich das nicht nutzen um zu dem angegebenen Bericht zu
springen ?

Nein, nicht so. Siehe oben bzgl. „springen“. Der Where-Condition-Parameter wird herangezogen, um damit DATENSÄTZE zu filtern, die im Bericht angezeigt werden sollen. Dabei muss dieser Parameter einem gültigen SQL-Where-Condition-Ausdruck entsprechen, jedoch ohne das Wörtchen „Where“.

Die Hilfe hab ich natürlich gelesen, und auch sonst in den
einschlägigen Foren gesucht…

Du musst einfach richtig lesen und interpretieren…

Wenn mit dem Bericht „Prozessbeurteilung IKS“ bestimmte Datensätze angezeigt werden sollen, braucht es noch die Angabe, WELCHE das sein sollen (Kriterium, Where-Condition). Das ist bisher unklar.

Dim stDocName As String
Dim stLinkCriteria As Variant
Dim Prozess As String ’ überflüssig.
stDocName = „Prozessbeurteilung IKS“ 'OK
stLinkCriteria = Me!Text1.Value ’ hier muss ein VERGLEICH her, nicht nur ein Wert, also etwa so im Fall, dass „MeinTextTabellenfeld“ den Datentyp „Text“ besitzt:

stLinkCriteria = „MeinTextTabellenfeld = '“ & Me!Text1 & „’“

Wenn es sich um Datentyp Zahl, Long Integer handelt, dann so:

stLinkCriteria = "MeinZahlTabellenfeld = " & Me!Text1

DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria

Wenn aber das Ganze dieses Szenario sein soll: Öffnen eines bestimmten Berichtes, dessen Namen vorher in ein Formular-Textfeld (Me!Text1) eingetragen wurde, dann muss dieser Name nicht als Kriterium angegeben werden, sondern der Variablen „stDocName“ zugewiesen werden.
Ob dabei ein Kriterium gebraucht wird ( Einschränkung der Datensätze) kannst nur Du wissen.

Dim stDocName As String
Dim stLinkCriteria As Variant

stDocName = Me!Text1 ’ hier Name des Berichtes zuweisen
'stLinkCriteria = > ’ evtl. Kriterium zuweisen.

DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria

In der ganzen Geschichte gibt es keine Erwähnung der OpenArgs-Parameters. :wink:

Dieser Parameter ist nur dafür da, um Werte an den Bericht zu übergeben, die nichts mit den Abfrage-Daten zu tun haben, z. B. um das Aussehen des Berichtes in Abhängigkeit des Aufrufes (also in welcher Prozedur der Bericht aufgerufen wurde) zu steuern.

Gruß
DF6GL,Franz

Zack ! - Das hat gesessen !

Tut mir leid, dass ich alles andere fehlinterpretiert habe !

Funktioniert eiwandfrei !

1000- Dank an alle die ich genervt habe.

Sauber erklärt und super verstanden :wink:)))
Christian