Juni 26, 2022, 19:46:54

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


variable im Berichtsfilter

Begonnen von AccessNewbieNoob, März 11, 2022, 18:29:07

⏪ vorheriges - nächstes ⏩

AccessNewbieNoob

Hallo Zusammen,

zuerst einmal danke für´s aufnehmen, ich hoffe ihr könnt mir helfen.
Ich habe einen Bericht, den ich über einen Button im Hauptformular öffnen kann.
Jetzt würde ich gerne beim öffnen des Berichts noch einen Filter setzen, den ich mir als Variable gebaut habe.
Dazu verwende ich folgenden Code:

Dim BerichtsName As String, Filter As String, Var1 As String

Berichtsname= Jahresabschluss
Filter = "[Gruppe]= '2022' And [Abgeschlossen]=False"
DoCmd.OpenReport BerichtsName, acPreview, , Filter

Wenn ich diesen Code verwende ist alles gut.

Aber wehe ich versuche das Jahr als variable zu setzen:

Var1 = ((DatePart("yyyy", Date, vbMonday))
Berichtsname= Jahresabschluss
Filter = "[Gruppe]= Var1 And [Abgeschlossen]=False"
DoCmd.OpenReport BerichtsName, acPreview, , Filter


Jetzt kommt ein Fehler in der Filter-Zeile und ich finde ihn einfach nicht. Hab auch die Semikolons durch Anführungszeichen ersetzt, geht auch nicht. Was mache ich denn falsch?  :-\
~Joe~

Starr mich nicht so an, ich bin auch nur eine Signatur.

DF6GL

Hallo,




Die Variable muss aus dem Filter-String ausgelagert werden:

.
.
Filter = "[Gruppe]= '" & Var1 & "' And [Abgeschlossen]=False"
.
.





wobei hier lt. dem Beispiel angenommen ist, dass "Gruppe" den Datentyp TEXT besitzt, was für eine Jahreszahl nicht sehr empfohlen ist.

MzKlMu

März 11, 2022, 19:24:18 #2 Letzte Bearbeitung: März 11, 2022, 19:46:31 von MzKlMu
Hallo,
versuche es einfach so:
DoCmd.OpenReport "Jahresabschluss", acPreview, , "[Gruppe]= " & Year(Date) & " And [Abgeschlossen]=False"Unter der Voraussetzung dass Gruppe eine Zahl ist. Den Rest des Codes braucht es nicht.

Wie kommt man eigentlich auf die etwas verwirrende Idee ein Feld das das Jahr als Inhalt hat Gruppe zu nennen?
PS:
Es empfiehlt sich Code zu kopieren und nicht abzuschreiben, diese Zeile ist falsch.
Berichtsname= Jahresabschluss
Gruß
Klaus

AccessNewbieNoob

März 11, 2022, 19:48:51 #3 Letzte Bearbeitung: März 11, 2022, 19:55:31 von AccessNewbieNoob Grund: Wo zur Hölle ist der Knopf "Thema gelöst" ?
Wow, ihr seid klasse, Danke vielmals!

Das von Franz war es.

@ Klaus: Die Mitglieder der einzelnen Gruppen werden jedes Jahr neu zusammengewürfelt. Die einzige Orientierung war deshalb für mich das Jahr.
Und stimmt: Beim Abschreiben hat sich ein Fehler eingeschlichen. Nächstes mal wird kopiert, Sir!  ;D

Nochmals ganz vielen Dank an euch beide, bin fast schon verzweifelt.
~Joe~

Starr mich nicht so an, ich bin auch nur eine Signatur.

MzKlMu

Hallo,
wenn die Gruppe Text ist (warum?) geht auch mein Einzeiler:
DoCmd.OpenReport "Jahresabschluss", acPreview, , "[Gruppe]= '" & Year(Date) & "' And [Abgeschlossen]=False"
Gruß
Klaus

AccessNewbieNoob

Hallo Klaus,

hab ich gesehen und danke auch dafür. Aber mir ist die andere Lösung lieber, somit könnte ich eventuell auch über ein Textfeld, das dann zur Variable wird gezielt nach einem bestimmten Wert suchen.

Und zu deiner Beruhigung: Die Gruppe ist eigentlich kein Textfeld, die wird berechnet. Da die Berechnung bei mir aber bereits funktioniert sah ich keinen Grund eine riesige Erklärung zu schreiben, sondern habe den wichtigen Text hier hereingeschrieben. Ich wollte nur wissen, warum die Variable nicht als Filter anerkannt wird.

...und wenn ich jetzt noch irgendwo den Button zum Bedanken und Beenden finden sollte, dann sehe ich die Frage als beantwortet und abgeschlossen an. - Danke euch beiden!
~Joe~

Starr mich nicht so an, ich bin auch nur eine Signatur.

MzKlMu

Hallo,
Zitatsomit könnte ich eventuell auch über ein Textfeld, das dann zur Variable wird gezielt nach einem bestimmten Wert suchen.
das geht auch bei meiner Version, problemlos. Du kannst das Textfeld eines Formulars ohne Variable direkt einbinden.
Wenn Gruppe eine berechneter Wert ist, und das Jahr enthält, dann sollte auch als Zahl gerechnet werden und nicht als Text. Die Verarbeitung von Zahlen ist für Access einfacher.
Gruß
Klaus