Ms access Microsoft Access如何检索要打印的当前表单ID
我正在尝试打印一个名为Carton Labels的报告,我想打印用户刚刚创建的特定记录。每次我尝试使用Me.cartonNo,这是当前表单上的实际字段,用户正在使用。他被提示输入。我做错了什么 编辑:Ms access Microsoft Access如何检索要打印的当前表单ID,ms-access,printing,report,ms-access-2010,Ms Access,Printing,Report,Ms Access 2010,我正在尝试打印一个名为Carton Labels的报告,我想打印用户刚刚创建的特定记录。每次我尝试使用Me.cartonNo,这是当前表单上的实际字段,用户正在使用。他被提示输入。我做错了什么 编辑: Dim strDocName As String Dim strFilter As String DoCmd.RunCommand acCmdSaveRecord strDocName = "Carton Labels" strFilter = "[cartonNo] = Forms![fr
Dim strDocName As String
Dim strFilter As String
DoCmd.RunCommand acCmdSaveRecord
strDocName = "Carton Labels"
strFilter = "[cartonNo] = Forms![frm_addFinishedGoodsInventory]![cartonNo]"
DoCmd.OpenReport strDocName, acViewPreview, strFilter
我的打印按钮不起作用,它的作用就像strFilter中没有存储任何内容一样,但是如果我将Dim intFilter创建为整数并将其存储为整数,我可以清楚地看到纸箱。如果我设置了断点,则不会在strFilter中显示纸箱编号。在将纸箱编号传递给OpenReport之前,您需要解析纸箱编号。通过放置表格!引号外的引用如下:
strFilter = "[cartonNo] = " & Forms![frm_addFinishedGoodsInventory]![cartonNo]
您正在创建字符串
[cartonNo]=6
,然后将其传递给报表。如果字段是文本字段(或日期),则需要在值周围加引号(或#s)。除非需要联机工作,否则我将避免使用宏。它们很难控制。@Fionnuala我添加了新的VBA代码,因为您建议远离宏。strFilter工作得很好,我可以看到存储在其中的实际数字。但是我的筛选器没有应用到我的OpenReport。您确定驱动报表的表或查询有一个名为cartonNo的字段吗?不是报表本身,而是报表的数据源。字段cartonNo是否需要一个数字而不是文本?@JohnnyBones我的cartonNo字段需要一个字符串而不是数字。@JohnnyBones我也尝试过将整个strFilter=用引号括起来。请确保在运行DoCmd.OpenReport之前关闭报告。如果已打开,则不会应用过滤器。在开发过程中,当您同时处理报表和打开报表的代码时,经常会发生这种情况。如果Application.CurrentProject.AllReports(strDocName).IsLoaded=True,则可以添加,然后添加DoCmd。关闭acReport,strDocName,DoCmd。关闭acReport,acSavePrompt