2015-09-08 90 views
0

我有一个MS 2010访问报告,需要由用户预先选择的记录填充。例如。根据用户的选择显示特定记录

Form1有2个字段,LOT#(这是记录ID)和CheckoffBox(未绑定)。

用户检查他想要显示的批号(记录),然后点击REPORT按钮。报告只显示选定的记录。

有人可以帮我创建代码吗?

回答

0

为了允许用户使用复选框选择多个记录,表单1中显示的列表必须基于具有批号#和是/否字段的表。 (即表单1必须基于查询或表是否是这个是/否字段)。

如果只有一个用户会在任何时候使用它,那么您可以简单地将一个yes/no字段添加到具有所有LOT#值的表中。

在你的报告上,你只能打印那些被检查的批号。

您的报告只需要SQL使用where子句只打印具有勾选/否字段的记录。 (=真= -1)。

如果很多用户同时使用这种形式,它会变得更加复杂,因为显然他们都需要拥有自己的“一组是/否”字段。

因此,您需要将表格与LOT#复制到一个临时表中供每个用户使用(它可能有一个USERID,LOT#的主键,或者它可能是一个只有LOT#的表,并且是/没有字段,只有用户可以访问 - 即在他们自己的具有前端形式的数据库文件副本中)。

无论如何,假设它是一个用户,创建上述应该是非常简单的。

在打开窗体1时,可以使用form_open事件来运行将所有“是/否”值设置为“否”的SQL语句。尽管您可能不想这样做。

使用 docmd.SetWarnings false Docmd.runsql“UPDATE theTable SET YesnoField = 0 WHERE YesnoField = -1;” docmd.SetWarnings true

让我知道你是否可以从这里拿走它。

+0

感谢您的信息。我想让“是/否”字段解除绑定,因为每次用户打印报告时都会有所不同,并且他今天签出的批次不应该在下次运行的报告中。 例如,今天用户想要将报表1,3和9中列出。明天,它可能是很多2,8,12。 Runsql更新可以工作,但我不希望每次都发生这种情况。有超过100条记录和计数。 – NewbieVBA

+0

它需要被绑定,没有其他办法来起诉复选框。简单地运行我提供的update语句,以在表单打开时清除它们,如果您担心的是添加WHERE子句,只更新YesNofield = -1的行。 – HarveyFrench

+0

好吧......有道理。谢谢你的帮助。我会给它一个镜头。 – NewbieVBA

相关问题