访问模态弹出表单以将新记录添加到与主表单记录相关的辅助 Table
Access Modal Popup Form to Add New Record to Secondary Table Related to Primary Form Record
场景:
我有两个表:
TableA
TableB
- 具有基于 RequestID
的一对多强制完整性关系(表 B 中有许多)。
我有三种形式:
FormA
- 根据用户输入的 RequestID
过滤 TableA
记录,然后将记录的 TableA
字段显示为以及通过 subFormA
. 关联的 TableB
记录
subFormA
- 使用 FormA
上的 RequestID
过滤器从 TableB
查询记录。
FormB
- ****这是我需要帮助的表格。**** FormB
是模态弹出窗口 window.这只是一个允许用户向 TableB
. 添加新记录的表单
当前功能:
- 单击
FormA
上的按钮时,会弹出 FormB
。 -- 工作中
当 FormB
打开时,它有两个组合框: -- WORKING
RequestID
(来自 TableB
)- 锁定以防止用户编辑
Field1
(来自TableB
)
RequestID
自动设置为 FormA
。 -- 正在工作
我的问题/目标:
问题:虽然第 3 步有效,但我的表单会自动填充 TableB 中的第一条关联记录。
目标:相反,我希望表单从新记录开始,但是 RequestID
已经填充了来自 FormA
.
的值
疑难解答:
我试过:
**在FormB
的VBA中:
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
End Sub
不幸的是,这会重置 RequestID
字段,我失去了与 FormA
的连接。
我试过要解决这个问题:
**在FormB
的VBA
中
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!RequestID = Forms!FormA!RequestID
End Sub
和
**在FormA
的VBA
中
Private Sub open_AddMilestoneF_button_Click()
DoCmd.OpenForm "FormB"
Forms![FormB].RequestID = Me.RequestID
End Sub
这些都没有用。所以我也尝试过:
**在 FormA
的 VBA:
Docmd.OpenForm "FormB",,,,acFormAdd,acDialog
但这会产生类似的结果(RequestID
已重置)。
有人有什么想法吗?任何提示将不胜感激!
想通了!我刚刚删除了 100% 与 FormB 相关的代码并从头开始。
在 FormA
上,我添加了一个简单的...
Private Sub open_FormB_button_Click()
DoCmd.OpenForm "FormB"
End Sub
然后在FormB
,我添加了以下代码:
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
Me.RequestID = Forms!API_BurndownPrimary_F!RequestID
End Sub
轰!全部完成。
场景:
我有两个表:
TableA
TableB
- 具有基于RequestID
的一对多强制完整性关系(表 B 中有许多)。
我有三种形式:
FormA
- 根据用户输入的RequestID
过滤TableA
记录,然后将记录的TableA
字段显示为以及通过subFormA
. 关联的 subFormA
- 使用FormA
上的RequestID
过滤器从TableB
查询记录。FormB
- ****这是我需要帮助的表格。****FormB
是模态弹出窗口 window.这只是一个允许用户向TableB
. 添加新记录的表单
TableB
记录
当前功能:
- 单击
FormA
上的按钮时,会弹出FormB
。 -- 工作中 当
FormB
打开时,它有两个组合框: -- WORKINGRequestID
(来自TableB
)- 锁定以防止用户编辑Field1
(来自TableB
)
RequestID
自动设置为FormA
。 -- 正在工作
我的问题/目标:
问题:虽然第 3 步有效,但我的表单会自动填充 TableB 中的第一条关联记录。
目标:相反,我希望表单从新记录开始,但是 RequestID
已经填充了来自 FormA
.
疑难解答:
我试过:
**在FormB
的VBA中:
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
End Sub
不幸的是,这会重置 RequestID
字段,我失去了与 FormA
的连接。
我试过要解决这个问题:
**在FormB
的VBA
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!RequestID = Forms!FormA!RequestID
End Sub
和
**在FormA
的VBA
Private Sub open_AddMilestoneF_button_Click()
DoCmd.OpenForm "FormB"
Forms![FormB].RequestID = Me.RequestID
End Sub
这些都没有用。所以我也尝试过:
**在 FormA
的 VBA:
Docmd.OpenForm "FormB",,,,acFormAdd,acDialog
但这会产生类似的结果(RequestID
已重置)。
有人有什么想法吗?任何提示将不胜感激!
想通了!我刚刚删除了 100% 与 FormB 相关的代码并从头开始。
在 FormA
上,我添加了一个简单的...
Private Sub open_FormB_button_Click()
DoCmd.OpenForm "FormB"
End Sub
然后在FormB
,我添加了以下代码:
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
Me.RequestID = Forms!API_BurndownPrimary_F!RequestID
End Sub
轰!全部完成。