【问题标题】:Access Modal Popup Form to Add New Record to Secondary Table Related to Primary Form Record访问模态弹出表单以将新记录添加到与主表单记录相关的辅助表
【发布时间】:2016-10-07 01:37:03
【问题描述】:

场景:

我有两张桌子:

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

我有三种形式:

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

当前功能:

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

    • RequestID(来自 TableB)- 锁定以防止用户编辑
    • Field1(来自TableB
  3. 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 已重置)。

有人有什么想法吗?任何提示将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    想通了!我刚刚删除了 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
    

    轰隆隆!全部完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多