Ms access 使用组合框为报告创建弹出窗口(在我的情况下不起作用)

Ms access 使用组合框为报告创建弹出窗口(在我的情况下不起作用),ms-access,vba,Ms Access,Vba,放大: 我用一个简单的组合框创建了一个窗体作为窗口。我得到了一个查询,它与where子句有关,where子句引用组合框的from和值。我在报告中写了一段代码 Private Sub Report_Load() frm.Customers.Show End Sub 但不知何故,它首先打开的是查询,而不是表单本身。我的意思是,查询希望我输入[Forms]![frm_客户]![cbo_客户].[value] 当我单独运行表单时,一切正常打开。你能告诉我为什么吗 查询编辑: SELECT dbo_li

放大: 我用一个简单的组合框创建了一个窗体作为窗口。我得到了一个查询,它与where子句有关,where子句引用组合框的from和值。我在报告中写了一段代码

Private Sub Report_Load()
frm.Customers.Show
End Sub
但不知何故,它首先打开的是查询,而不是表单本身。我的意思是,查询希望我输入
[Forms]![frm_客户]![cbo_客户].[value]
当我单独运行表单时,一切正常打开。你能告诉我为什么吗

查询编辑:

SELECT dbo_listy.listnumb, dbo_listy.id, dbo_listy.created, dbo_listy.type
FROM dbo_listy
WHERE forwho =Forms!frm_Customers!cbo_customers.value;

首先打开表单,然后在命令按钮中使用:

 expression.OpenReport(ReportName, View, FilterName, _
     WhereCondition, WindowMode, OpenArgs)

 DoCmd.OpenReport "MyReport",,,"MyID=" & Me.txtID
还是你的情况

 DoCmd.OpenReport "MyReport",acViewPreview,,"id=" & Me.cbo_customers
请注意,报告应基于完整的数据集,WHERE语句将其限制为Me.txtID或cbo_customers中的客户ID

编辑正如我上面所说的,查询应该包括完整的记录集,即:

 SELECT dbo_listy.listnumb, 
        dbo_listy.id, 
        dbo_listy.created, 
        dbo_listy.type
 FROM dbo_listy

另请参见

Ok,但为什么它强制打印+调用forwho inputboxForWho在您发布的查询中不存在。我建议你使用一个ID。一切似乎都起作用。告诉我为什么它会打印打开报告的instat?阅读上面的答案,特别是链接。您需要将View属性设置为acViewPreview。您可以在报表页眉或页脚的文本框中添加数字,例如
=Sum(This)
=Count(That)
,还有一个运行的Sum。