【发布时间】:2014-12-20 18:38:42
【问题描述】:
我有一个名为“详细信息”的表单,它显示了所选记录的详细视图。该记录是从称为“搜索”的不同形式中选择的。因为我希望能够打开多个“详细信息”实例,每个实例都显示不同记录的详细信息,所以我使用了以下代码:
Public detailCollection As New Collection
Function openDetail(patID As Integer, pName As String)
'Purpose: Open an independent instance of form
Dim frm As Form
Debug.Print "ID: " & patID
'Open a new instance, show it, and set a caption.
Set frm = New Form_detail
frm.Visible = True
frm.Caption = pName
detailCollection.Add Item:=frm, Key:=CStr(frm.Hwnd)
Set frm = Nothing
End Function
PatID 是我希望在这个新的“详细信息”实例中显示的记录的主键。调试打印行打印出正确的 PatID,所以我可以使用它。如何将它传递给表单的这个新实例?
我尝试设置新表单的 OpenArgs,但我收到一条错误消息,指出 OpenArgs 是只读的。经过研究,OpenArgs 只能由 DoCmd 设置(这是行不通的,因为那时我没有得到表单的独立实例)。创建 Form 对象时,我找不到有关允许参数的文档。显然,微软不认为构造函数是一种方法,至少根据文档。我该如何处理? (请不要告诉我将其设置为不可见的文本框或其他东西)谢谢大家,你们是网上为我回答这些问题的最佳人选。我爱你们!
多实例表单的源代码取自:http://allenbrowne.com/ser-35.html
【问题讨论】: