MS ACCESS:打印基于记录集而不是 record_ID 的报告

Posted

技术标签:

【中文标题】MS ACCESS:打印基于记录集而不是 record_ID 的报告【英文标题】:MS ACCESS: Print a report based on a recordset instead of record_ID 【发布时间】:2017-07-07 16:48:45 【问题描述】:

绝望和周末在望,我不能停止,直到我解决这个问题。请多多包涵……

我正在使用从 excel 文件中获取一些数据的子表单。 (搜索表单等功能)

使用提交按钮,我将搜索结果放入带有记录集的表中。 (代码如下)

这一切都很好!现在,我想从我刚刚使用下面的代码添加的同一条记录中打印一份报告。 我怎样才能做到这一点?因为我目前正在使用没有记录 ID 的表单(因为它仅用于搜索)

如何使用当前的“item_ID”(我刚刚添加的那个)打印出报告???

Private Sub Submit_Click() Dim db As Database Dim rec As Recordset Set db = CurrentDb Set rec = db.OpenRecordset("Select * from inboundreturns_items") rec.AddNew rec("returnID") = Forms!inboundreturns.returnID.Value rec("ireq") = Me.ireq rec("item") = Me.Item rec("tasknumber") = Me.tasknumber rec("country") = Me.Country rec("engineername") = Me.engineer rec("connote") = Me.connote rec("status") = Me.Status rec.Update Set rec = Nothing Set db = Nothing End Sub

(仅供参考:报告基于表 inboundreturns_items)

【问题讨论】:

一个returnID可以有多个关联项?您只想打印一个新项目记录?假设 ItemID 始终递增,则新记录将具有最大 [ItemID]。使用 DMax() 域聚合函数来获取该值。但是,这也假设没有多个用户同时访问数据库并创建新的 ItemID 记录。 【参考方案1】:

刚刚做了一个实验,这似乎有效。在rec.Update之后,尝试:

rec.MoveLast DoCmd.OpenReport "reportname", , , "ItemID=" & rec!ItemID

【讨论】:

以上是关于MS ACCESS:打印基于记录集而不是 record_ID 的报告的主要内容,如果未能解决你的问题,请参考以下文章

在 MS-Access 中禁用除报告(打印预览)之外的功能区栏

MS Access 如何计算过滤报告上的唯一记录或值

MS Access - 基于同一张表但不同记录的表单和子表单

MS Access:从 VBA 列出宏

使用 VB.NET 打印 MS Access 报告

基于控件名称而不是控件源(字段)的 MS Access 计算