我有一个Access数据库,其中包含一个患者入院表格,其中列出了列出患者所有程序的列表框。列表框包含ProcedureID,ProcedureDate和ProcedureTitle。列表框绑定到1或procedureID。
我有一个打开过程表单的列表框的双击事件。该表单具有选项卡子表单,其中包含与该过程相关的各种数据。
表单将打开正确的记录,并在表单和子表单中显示相关数据。问题是当我尝试编辑过程表单上的数据时,我收到以下错误消息..
you can't assign a value to this object
错误指向我的程序表单上的on dirty事件。这只是一个问题,如果我尝试编辑父表单中的数据,子表单工作正常,并接受任何编辑。
我在列表框中的双击事件中有这段代码
Private Sub lst_Procedure_DblClick(Cancel As Integer)
'double click to open procedure form to the selected record
Dim ProcID As Long
ProcID = Me!lst_Procedure
DoCmd.Close acForm, "frm_Admission"
DoCmd.OpenForm "frm_Procedure", , , "[ProcedureID] = " & ProcID
End Sub
并在程序表单上打开正确记录的代码
Private Sub Form_Dirty(Cancel As Integer)
'open Procedure form to record selected in procedure list
Me.ProcedureID = Me.OpenArgs
End Sub
任何建议都将不胜感激。我试过在onLoad而不是onDirty接收openargs但是无济于事。
答案 0 :(得分:0)
DoCmd.OpenForm "frm_Procedure", , , "[ProcedureID] = " & ProcID
打开包含现有记录的表单。您使用WhereCondition
OpenForm
参数。 https://msdn.microsoft.com/en-us/library/office/ff820845.aspx
因此无需在打开的表单中设置Me.ProcedureID
。只需删除Dirty
事件过程。
我猜ProcedureID
是主键和自动编号?
无法更改自动编号值。