2017-03-07 4 views
0

私は、会議ごとにいくつかのレコードを含むいくつかの会議をリストしたレポートを持っています。コンボボックスで特定の会議の日付を1つ選択するためのポップアップフォームを設定し、そのフォームを印刷目的でフィルタリングするために使用します。 (組み込みフィルタリングのクリックスルーはぎこちなく、明らかにコンボボックスはレポートでは機能しません)。この問題は、別の会議の日付を選択しようとしたときに発生します。フォームを閉じてもう一度開くのではなく、選択した最初の会議がフィルタに表示されます。私は選択フォームを開き、レポートボタンに次のコードを配置した:問題のクリアアクセスレポートフィルタ

Private Sub cmdMeetingSelect_Click() 
'Clear any pre-existing filter 
    Me.Filter = "" 
    Me.FilterOn = False 
'Open form to filter the report 
    DoCmd.OpenForm "frmMeetingSelect" 
End Sub 

フォームが開き、私はフィルタがレポートにオフにされることを見て、私は新しい日付を選択することができますよフォーム上には表示されますが、古い日付は引き続きレポートのフィルタリングに使用されます。選択フォームに次のものを含む

は役立ちません:

Private Sub Form_Open(Cancel As Integer) 
    Me.cboMeetingSelect = "" 
End Sub 

これは戻ってレポートにフィルタ選択を送信選択フォーム内のコードです。それについて何かが、それは一度だけ動作しますかどうかわからない:レポートにAdvanced -> Clear All Filtersクリックスルー

Private Sub cmdFilterMeeting_Click() 
'Run a filter on the RSVPAttendance report 
    Reports!rptRSVPAttendance.Filter = "MeetingDate = Forms!frmMeetingSelect.cboMeetingSelect" 
    Reports!rptRSVPAttendance.FilterOn = True 
'Close selection form 
    DoCmd.Close 
End Sub 

も無効です。

Access 2010でコンボボックスを使用したフォームのフィルタリングに関するバグの報告がありましたが、これまでに解決されていることは間違いありません。ほかに何が足りないのですか?

答えて

2

あなたのフィルタ文字列は奇妙です。

Reports!rptRSVPAttendance.Filter = "MeetingDate = #" & Format(Forms!frmMeetingSelect.cboMeetingSelect.Value, "yyyy\/mm\/dd") & "#" 
+0

これは完全に機能し、レポートを閉じて再度開くことなくフィルタを変更できるようになりました。ありがとう! – bcarothers

0

奇妙に思えるいくつかのものがここにあります

  1. はcmdMeetingSelect_Clickに、これらの線を取り除く、彼らは、フォームにフィルタを制御し、レポートのために何もしていません。 Me.Filter = "" Me.FilterOn = False

  2. フィルタ条件に構文エラーがありますが、それはその点以外にあります。私はあなたがレポートが現在開いているときに変更するためにフィルタすることを期待すると思います。それはうまくいかない場合は、レポートを閉じてから再度開く必要があります。このようにフィルタを変更することはできません。代わりにフィルタを適用しようとするのではなく、レポートのwhere条件を設定することをお勧めします。ただし、これを行う前に、そのレポートをデザインモードで開き、既存のフィルターを削除し、フィルターもオフにします。そして、あなたがこれにcmdFilterMeeting_Clickに持っているものに置き換えます。

文字列としてのConst RptName = "rptRSVPAttendance"

'close report if already open 
If SysCmd(acSysCmdGetObjectState, AcObjectType.acReport, RptName) = 1 Then 'report is open 
    DoCmd.Close acReport, RptName 
End If 

'open report with where criteria, no filtering needed 
DoCmd.OpenReport RptName, acViewPreview, , ("[MeetingDate] = #" & Me.cboMeetingSelect.Value & "#") 

'close form 
DoCmd.Close acForm, Me.Name 
関連する問題