2016-06-01 7 views
1

Kann jemand Berichte im Access-Laufzeitmodus richtig filtern? Der übliche Code mit DoCmd funktioniert nicht.Ms Access-Filter-Berichte im Laufzeitmodus

Dies ist, was ich für den Bericht versucht:

Private Sub Befehl217_Click() 
DoCmd.OpenReport "Tagesbericht", acViewPreview 
End Sub 

Private Sub Bezeichnungsfeld26_Click() 
DoCmd.GoToControl "DateFilter" 
DoCmd.RunCommand acCmdFilterMenu 
End Sub 

diese Arbeit nicht. Access beschwerte sich, dass "FilterMenu ist nicht verfügbar".

Ich habe versucht, ein Kontextmenü zu erstellen, aber das zeigte mir nur Ausschneiden, Kopieren und Einfügen.

+0

Was haben Sie versucht? Keiner von uns kann Ihnen helfen, es sei denn, ich habe etwas, mit dem ich arbeiten kann, insbesondere ein [minimales, vollständiges und verifizierbares Beispiel (MCVE)] (https://stackoverflow.com/help/mcve). Eine gute Möglichkeit, dies zu erklären, ist es, den Code, den Sie bisher geschrieben haben, die Beispieleingabe (falls vorhanden), die erwartete Ausgabe und die Ausgabe, die Sie tatsächlich erhalten (Konsolenausgabe, Trace-Backs usw.), einzubeziehen. Je mehr Details Sie angeben, desto mehr Antworten erhalten Sie wahrscheinlich. Schauen Sie sich auch die [FAQ] (http://meta.stackexchange.com/q/7931) und [ask] (https://stackoverflow.com/help/asking) an. –

+0

Es sagt, dass FilterMenu nicht verfügbar ist – idunnowhatimdoin

+0

Das ist eigentlich das Feld innerhalb des Berichts, wo ich den Filter angezeigt werden wollte. Ich habe das funktioniert in meiner Form, aber nicht Mather, was ich tue, wird es nicht funktionieren in Berichten – idunnowhatimdoin

Antwort

1

Sie haben Ihre r bestätigt eport enthält ein Steuerelement mit dem Namen Bezeichnungsfeld26, und wenn der Benutzer auf dieses Steuerelement klickt, möchten Sie das Filtermenü für dieses Steuerelement aufrufen.

Wenn der Benutzer auf dieses Steuerelement klickt, hat es den Fokus, so dass GoToControl nicht benötigt wird. Und Sie möchten nicht zu einem anderen Steuerelement wechseln, wenn der Benutzer auf Bezeichnungsfeld26 filtern soll.

Deaktivieren Sie die GoToControl Linie ...

Private Sub Bezeichnungsfeld26_Click() 
'DoCmd.GoToControl "DateFilter" 
DoCmd.RunCommand acCmdFilterMenu 
End Sub 
0

Sie können die Filter Eigenschaft:

Me.Filter = "[YourField] = " & somevalue & "" 
Me.FilterOn = True 

oder auf Ihrer aktuelle Methode erweitern:

DoCmd.OpenReport "Tagesbericht", acViewPreview, , "[YourField] = " & somevalue & "" 

Wenn Sie ein Datum filtern Sie einen korrekt formatierte String-Ausdruck übergeben muss für das Datum:

Dim FilterDate As Date 

FilterDate = Date 

DoCmd.OpenReport "Tagesbericht", acViewPreview, , "[DateFilter] = #" & Format(FilterDate, "yyyy\/mm\/dd") & "#" 
+0

schreibe ich dies in Code zum Beispiel in den onclick für ein Feld? Oder ist das in den Eigenschaften des Feldes? – idunnowhatimdoin

+0

ok gut, das hat auch nicht funktioniert ... weißt du, wie man mit Shortcut-Menüs arbeitet? vielleicht kann ich das versuchen Ich würde eine neue Frage erstellen, weil ich bereits etwas versucht habe, aber immer noch Probleme mit dem – idunnowhatimdoin

+0

Der Code wird funktionieren, so dass Ihre Implementierung wahrscheinlich unscharf ist. Kontextmenüs funktionieren nicht in der Laufzeitumgebung, wenn ich mich richtig erinnere. – Gustav