2014-09-05 92 views
0

我有一个嵌入到包含文本框和按钮的表单中的报表。MS Access,刷新嵌入到表单中的报表

我的愿望是更新报表上的过滤器并重新查询并刷新表单中的报表。我对访问中使用VBA不是很熟悉,所以我可能完全脱离了我试图做到这一点的基础。

单击generateExhib按钮时触发的事件如下。

作为子窗体/子报表嵌入的报表被命名为TagReport。

Private Sub GenerateExhib_Click() 



    If (generatePrintedExhib.Value = False) Then 
     Me.TagReport.Application.DoCmd.SetFilter WhereCondition:="[Exhibitor ID] =" + ExhibitorNumber.Value + " AND [UDEntry-CheckBox1] = false" 
    Else 
     Me.TagReport.Application.DoCmd.SetFilter WhereCondition:="[Exhibitor ID] =" + ExhibitorNumber.Value 
    End If 


    Me.TagReport.Report.Application.DoCmd.Requery 
    Me.TagReport.Report.Application.DoCmd.RefreshRecord 


End Sub 
+0

不知道这是罪魁祸首,所以我会把它作为评论发布,但是你为什么要经历“Me.TagReport.Report.Application.DoCmd.Requery'的整个讨论,而不是仅仅是'Me.TagReport。 Requery'? – Aiken 2014-09-08 08:14:44

回答

0

我创建了一个带有嵌入式报表的小测试表单,一个带过滤值的组合框和一个刷新按钮。在按钮的单击事件中,我添加了以下代码:

Private Sub cmdRefresh_Click() 
    Dim filter As String 

    filter = "CardCode = '" & Me.cmbFilter.Value & "'" 

    '"subform_rpt" is the specific name of the embedded report. 
    DoCmd.ApplyFilter "Filter", filter, "subform_rpt" 

End Sub 

对我来说工作起来很不错。我希望这将有所帮助。

+0

此外,如果您是新手,如果此答案解决了您的问题,请单击旁边的复选标记将其标记为答案。如果你觉得有帮助,至少应该对它投票。 – 2014-09-05 22:46:29