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 中禁用除报告(打印预览)之外的功能区栏