访问模式弹出窗体以将新记录添加到与主窗体记录相关的辅助表

时间:2016-10-06 17:12:58

标签: vba ms-access access-vba foreign-key-relationship popupwindow

情景:

我有两张桌子:

  • TableA
  • TableB - 具有基于RequestID的1对多强制完整性关系(表B中有许多)。

我有三种形式:

  • FormA - 根据用户输入中的TableA过滤RequestID条记录,然后显示记录的TableA字段以及相关的{{ 1}}记录来自TableB
  • subFormA - 在subFormA上使用TableB过滤器查询来自RequestID的记录。
  • FormA - ****这是我需要帮助的表格。**** FormB是模态弹出窗口。这只是一个允许用户向FormB添加新记录的表单。

当前功能:

  1. 点击TableB上的按钮后,会弹出FormA。 - 工作
  2. FormB打开时,它有两个组合框: - 工作

    • FormB(来自RequestID) - 已锁定以阻止用户修改
    • TableB(来自Field1
  3. TableB自动设置为RequestID。 - 工作

  4. 我的问题/目标:

    问题:虽然第3步正在运行,但我的表单是使用TableB中的第一个关联记录自动填充的。

    目标:相反,我希望表单以新记录开头,但FormA已填充RequestID的值。

    故障:

    我试过了:

    ** FormA的VBA中的

    FormB

    不幸的是,这会重置Private Sub Form_Load() DoCmd.GoToRecord , , acNewRec End Sub 字段,但我失去了与RequestID的关联。

    要解决我尝试过的问题:

    ** FormA的VBA

    FormB

    ** Private Sub Form_BeforeInsert(Cancel As Integer) Me!RequestID = Forms!FormA!RequestID End Sub 的VBA

    FormA

    这些都没有奏效。所以我也试过了:

    ** Private Sub open_AddMilestoneF_button_Click() DoCmd.OpenForm "FormB" Forms![FormB].RequestID = Me.RequestID End Sub 的VBA:

    FormA

    但是这会产生类似的结果(Docmd.OpenForm "FormB",,,,acFormAdd,acDialog 被重置)。

    有没有人有任何想法?任何提示将不胜感激!

1 个答案:

答案 0 :(得分:0)

想出来!我刚刚删除了与FormB相关的100%代码,并从头开始。

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

轰!一切都完成了。