vba - MS.Access - 在 DoCmd.OpenReport [where 条件] 中使用 2 个过滤条件从表单打印报表
问题描述
我正在尝试从表单打印批次 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"
推荐阅读
- bash - Git应用二进制文件差异。“补丁不适用”错误
- css - *not* 聚焦时移除 JavaFX ScrollPane 滚动条周围的边框
- matlab - 基于特定变量重新采样数据
- angular-material - 访问预建方案的原色
- c - 错误杂散\ 327 C代码未编译
- laravel - 全新安装 Homestead / Vagrant / Laravel 的 npm 权限问题
- c# - 我正在尝试下载谷歌驱动器中的所有 pdf 文件,但未能保存位于谷歌驱动器中的每个 pdf
- java - 关于火花摄取的查询。[爪哇]
- c++ - 数组不存储超出第一个空间
- msbuild - 代码在 VS (2017) 中构建良好,但不是 msbuild 或 TFS “程序集清单与程序集引用不匹配