Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Microsoft Access如何检索要打印的当前表单ID_Ms Access_Printing_Report_Ms Access 2010 - Fatal编程技术网

Ms access Microsoft Access如何检索要打印的当前表单ID

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

我正在尝试打印一个名为Carton Labels的报告,我想打印用户刚刚创建的特定记录。每次我尝试使用Me.cartonNo,这是当前表单上的实际字段,用户正在使用。他被提示输入。我做错了什么

编辑:

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