【发布时间】:2011-07-12 22:57:21
【问题描述】:
我有一个子表单,它是较大表单的一部分,其中两者都包含 PROJECT_ID 字段。在主窗体中,PROJECT_ID 字段是一个键。在子表单中,用户可以选择为项目分配新代表或更改子表单中的当前项目代表。一个项目可以有多个代表,但是只有一个可以是活动的主要代表。我的问题是我在编写主要标志字段 (ADV_FLAG) 的验证时遇到问题,因为它本质上是基于查询的。谈到 VBA,我有点新手,但我认为这可能是解决我的问题的最佳解决方案。有关如何解决此问题的任何建议或类似代码示例。以下是我目前在 sub_form 的 BeforeUpdate 事件过程中拥有的内容。
Private Sub Form_BeforeUpdate(取消为整数)
'验证项目中的多个活动主节点
‘追加到表 T_Error_Catch 的 project_ID 和一个错误标志为 YES '其中一个项目有多个活动的主节点。
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_Append_Errors_MultiplePrimaries", acViewNormal, acEdit
'向用户抛出一个对话框错误,表明该项目已经有一个活动的主节点
If ERR_FLAG = "Yes" And ADV_FLAG.Value <> "Secondary" Then
MsgBox "Project already has an Active Primary.", vbExclamation
ADV_FLAG.SetFocus
Cancel = True
End If
‘一旦记录被更正,就截断 T_Error_Catch 表,并且再次只有一个活动的主表
If ERR_FLAG = "Yes" And ADV_FLAG.Value = "Secondary" Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "Clear T_Error_Catch", acViewNormal, acEdit
End If
结束子
【问题讨论】:
标签: ms-access