2014-09-24 47 views
0

我试图打印一个名为Carton Labels的报表,并且我想打印用户刚创建的特定记录。每次我尝试使用Me.cartonNo这是用户所在当前窗体上的实际字段。他被提示输入。我究竟做错了什么?Microsoft Access如何检索要打印的当前表单ID

enter image description here

编辑:

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的,但如果我创建昏暗intFilter为整数,并将其存储到一个整数,我可以清楚地看到纸箱没有,如果我设置了一个断点,但我没有在strFilter。

+1

我会避免宏,除非你需要在线工作。他们很难控制。 – Fionnuala 2014-09-24 14:16:02

+0

@Fionnuala我添加了我的新VBA代码,因为你建议远离宏的 – 2014-09-24 15:44:58

回答

1

您需要先解决纸箱号码,然后再将其传递给OpenReport。通过放置表格!这样引号外参考:

strFilter = "[cartonNo] = " & Forms![frm_addFinishedGoodsInventory]![cartonNo] 

正在创建的字符串[cartonNo] = 6,然后传递一个报告。如果该字段是文本字段(或日期),则需要在值的周围包含引号(或#)。

+0

strFilter完美的工作,我可以看到实际的数字存储到它。但我的过滤器没有被应用到我的OpenReport。 – 2014-09-24 16:07:39

+0

您认为推动报告的表或查询有一个名为cartonNo的字段?不是报告本身,而是报告的数据来源。而外地纸箱没有期待一个数字而不是文字? – 2014-09-24 16:11:24

+0

@JohnnyBones我的纸箱没有字段预计字符串不是一个数字。 – 2014-09-24 17:26:35