我在 MS-Access 中创建了一个带有选项卡控件的表单。
在其中一个选项卡上,我有 2 个子表单控件显示来自同一个表的记录。这个表有一个我称之为“状态”的字段,可以有一个“打开”或“关闭”的条目;2 个子表单只是将这 2 个选项显示为选项卡控件上的单独组。
然后我在每个子表单下方都有一个按钮;用户选择(单击)任一子表单中的一条记录,然后该按钮将在子表单中的选定记录处打开一个新的“编辑”表单,以便他们可以查看更多信息并将“状态”字段切换为“打开”或“关闭”。
当用户按下“保存并关闭”按钮时,将保存更改,关闭“编辑”表单,并重新查询 2 个子表单。
我要做的是计算“编辑”表单关闭后仍然显示的“打开”记录数。然后将计数传递到此选项卡的选项卡标题,以便用户一眼就可以看到有多少“打开”记录与该主窗体上的记录相对。
到目前为止,这是我的代码:
Private Sub cmdAdminIssue_Edit_SaveClose_Click()
' save and close currently open edit form
DoCmd.Close acForm, "tblAdminIssue_Edit", acSaveYes
' requery the subforms to show the effect of the edits made via the edit form
Forms![tblJobs]![tblAdminIssue_Sub_Open].Form.Requery
Forms![tblJobs]![tblAdminIssue_Sub_Closed].Form.Requery
' count number of records still open and pass the number through to the tab control caption property
Dim AdIssOpenCount As Long
AdIssOpenCount = DCount("JobID", "qryAdminIssue_Open", "JobID = '" & Me![JobID] & "'")
Forms![tblJobs]![tab_AdIssues].Caption = "Admin Issues (" & AdIssOpenCount & ")"
End Sub
上面的代码触发了错误:“你输入的表达式引用了一个已关闭或不存在的对象”,在调试中突出显示了我的 DCount 表达式。
但是我可以让 DCount 独立于它上面的其他代码工作;他们似乎相互干扰,但我不太明白如何。
参考上面的错误消息,它似乎暗示 DCount 需要打开我引用的查询才能运行......这对我来说没有多大意义,因为我认为这些类型的函数不需要你显式打开在代码中,它试图从中获取数据的对象......我可能误解了这个错误的实际含义。
对错误的任何解释和可能的解决方法将不胜感激。谢谢。