Ms access 使用Access 2003 VBA,我希望能够在屏幕上显示报告,而不是打印出来。但它没有';行不通

Ms access 使用Access 2003 VBA,我希望能够在屏幕上显示报告,而不是打印出来。但它没有';行不通,ms-access,vba,Ms Access,Vba,提前感谢您提供的任何帮助。 我使用案例陈述来确定要打印的报告。我已确定选择了正确的案例陈述。以下是案例陈述: Public Function RunAll(Vvar As Integer) Select Case Vvar Case 1 'Case Me.frmeReports.Value = 1 DoCmd.OpenReport "rptClientDev", acViewPreview Case 2

提前感谢您提供的任何帮助。 我使用案例陈述来确定要打印的报告。我已确定选择了正确的案例陈述。以下是案例陈述:

Public Function RunAll(Vvar As Integer)

    Select Case Vvar

        Case 1
            'Case Me.frmeReports.Value = 1
            DoCmd.OpenReport "rptClientDev", acViewPreview

        Case 2
            'Case Me.frmeReports.Value = 2
            DoCmd.OpenReport "rptNetworking", , , , acViewPreview

        Case 3
            'Case Me.frmeReports.Value = 3
            DoCmd.OpenReport "rptSpeaking", , , , acViewPreview

        Case 4
            'Case Me.frmeReports.Value = 4
            DoCmd.OpenReport "rptArticle", , , , acViewPreview

    End Select

End Function
此函数由以下子例程调用:

Private Sub cmdOK_Click()

    If Me.ChkRunOne.Value = -1 Then
        strAttName = Me.cmbAttyName.Value
        vReportChoice = Me.frmeReports.Value
        RunOnce (vReportChoice)
        DoCmd.Close
        DoCmd.OpenForm ("frmMainMenu")

    Else
        vReportChoice = Me.frmeReports.Value
        RunAll (vReportChoice)
        DoCmd.Close
        DoCmd.OpenForm ("frmMainMenu")

    End If

End Sub
报告以正确的值正确打印。问题是我不希望它们打印出来,我希望它们出现在屏幕上。您可以从case1语句中看到,我尝试在参数之间使用更少的逗号,但结果是一样的。打印报告,然后关闭数据库。我完全搞糊涂了

-谢谢

语法来自:,2003是一样的

expression.OpenReport ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs
那么所有这些

DoCmd.OpenReport "rptNetworking", , , , acViewPreview
是错误的,逗号太多了


第一个是正确的。

这是关于您的第二个注释-关于数据库意外关闭的注释:

我认为这可能是由于不小心使用了
DoCmd.Close
:当您在没有任何参数的情况下调用此方法时,它会关闭当前活动的窗口,而该窗口不一定是您真正想要关闭的窗口。在这种情况下,您在调用
DoCmd.Close
之前打开了一大堆报告窗口-您认为哪个窗口在调用时变为活动状态?;-)

调用
DoCmd.Close
时,最好始终使用特定的窗口(例如表单)引用(有关更多详细信息,请参阅)