2016-04-04 53 views
0

我有这样的MS Access VBA代码,使用的MS Access 2016如何在主窗体的子窗体/子报表,里面的控制

Private Sub cmdPreview_Click() 
On Error GoTo Err_Handler 

    Dim strReport As String 
    Dim strDateField As String 
    Dim strWhere As String 
    Dim lngView As Long 
    Const strcJetDate = "\#mm\/dd\/yyyy\#" 

    strReport = "Sales Report V2" 
    strDateField = "[OrderDate]" 
    lngView = acViewReport 

    If IsDate(Me.txtStartDate) Then 
     strWhere = "(" & strDateField & " >= " & Format(Me.txtStartDate, strcJetDate) & ")" 
    End If 
    If IsDate(Me.txtEndDate) Then 
     If strWhere <> vbNullString Then 
      strWhere = strWhere & " AND " 
     End If 
     strWhere = strWhere & "(" & strDateField & " < " & Format(Me.txtEndDate + 1, strcJetDate) & ")" 
    End If 

    If CurrentProject.AllReports(strReport).IsLoaded Then 
     DoCmd.Close acReport, strReport 
    End If 

    DoCmd.OpenReport strReport, lngView, , strWhere 

Exit_Handler: 
     Exit Sub 

Err_Handler: 
     If Err.Number <> 2501 Then 
      MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "Cannot open Report" 
     End If 
     Resume Exit_Handler 
End Sub 

开放存取报告的代码是用做日期范围形式的工作。该表格可让您选择开始日期和结束日期。然后,您单击一个调用上述代码的按钮,并在新选项卡中生成报告。我想达到什么,但迄今为止还没有弄清楚。是如何使报告显示在包含日期范围控件的表单的子表单/子报表中,然后从那里单击一个按钮以在新选项卡或打印中打开生成的报表,或者如果用户很高兴与选择。

此代码是从位于www.allenbrowne.com/casu-08.html

+0

那不是VB.NET代码 – Plutonix

+0

修复了标签对不起 –

回答

0

您可以设置所附报告的Filter财产教程:

Me!NameOfYourSubreportControl.Report.Filter = strWhere 
Me!NameOfYourSubreportControl.Report.FilterOn = True 

要打开报告以正常的方式,使用您现有的代码。

相关问题