MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表
Posted
技术标签:
【中文标题】MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表【英文标题】:MS.Access - VBA Print Report From Form with 2 filter criteria in the DoCmd.OpenReport [where condition] 【发布时间】:2021-05-13 13:32:56 【问题描述】:我正在尝试从表单中打印批次 ID 数据表而不打开报表。 使用下面的代码,我可以打开只显示我想要的数据的报告
Private Sub PrntbLblV1_Click()
Dim str As String
str = "[BatchID] = " & Me.BatchID
DoCmd.OpenReport "RprtLblPrint", acViewPreview, , str
DoEvents
End Sub
这会在打印预览中打开我想要的记录...但是我只想将记录发送到打印机..我已经尝试过
DoCmd.OpenReport "RprtLblPrint", acNormal, , str
DoCmd.RunCommand acCmdPrint
DoEvents
但它会打印每批交易,而不仅仅是当前交易...我认为问题是我在报告属性中有一个进一步的过滤器,它在加载时过滤以删除已完成的交易 [Complete] = False,这是一个真/假复选框.. 我似乎无法将完成和批处理条件嵌套到 DoCmd.OpenReport 的 where 部分 它不断抛出类型不匹配错误
str = "[BatchID] = " & Me.BatchID And [Complete] = False
我试过分开它
Dim str As String
Dim Cmplt As String
str = "[BatchID] = " & Me.BatchID
Cmplt = [Complete] = False
DoCmd.OpenReport "RprtLblPrint", acNormal, , str And Cmplt
DoCmd.RunCommand acCmdPrint
关于如何将 2 个过滤条件放入 DoCmd.OpenReport where 条件的任何建议?
【问题讨论】:
试试str = "[BatchID] = " & Me.BatchID & " And [Complete] = False"
嘘!第一次工作...谢谢科斯塔斯...
@KostasK.,可以写一个答案。
@KostasK。应该写他的评论作为答案。
【参考方案1】:
它必须是过滤器字符串的一部分,如下所示:
str = "[BatchID] = " & Me.BatchID & " And [Complete] = False"
【讨论】:
以上是关于MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表的主要内容,如果未能解决你的问题,请参考以下文章
MS Access:突出显示 MS Access 报告中的特定字段