首页 文章

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

提问于
浏览
0

场景:

我有两张 table :

  • TableA

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

我有三种形式:

  • FormA - 根据用户输入的 RequestID 过滤 TableA 记录,然后通过 subFormA 显示记录的 TableA 字段以及关联的 TableB 记录 .

  • subFormA - 在 FormA 上查询来自 TableBRequestID 过滤器的记录 .

  • FormB - ****这是我需要帮助的表格 . **** FormB 是模态弹出窗口 . 这只是一个允许用户向 TableB 添加新记录的表单 .

当前功能:

  • 单击 FormA 上的按钮时,会弹出 FormB . - 工作

  • FormB 打开时,它有两个组合框: - 工作

  • 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 被重置) .

有没有人有任何想法?任何提示将非常感谢!

1 回答

  • 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
    

    繁荣!全部完成 .

相关问题