Access 2016 根据之前的表单值设置表单域

Access 2016 set form field based on previous form value

我正在创建一个由两部分组成的 Access 数据库 - 软件和许可证。许可证通过其 ID 附加到软件。

我有一个为软件创建的表单,我想创建一个按钮,单击该按钮会打开一个新的 "Add License" 表单,该表单预先填充软件 ID,人们可以填写其余部分上的信息。 我一直在使用来自类似 Office 2016 模板的宏,但在尝试将此信息放入新的许可表单时,它不断失败。

我在下面附上了我的宏的屏幕截图 - 我已经对此进行了多次迭代,我得到的错误是 30024,这似乎表明它找不到将 SoftwareID 放入的字段新打开的表格。 我还将 "Control Name" 设置为 "SoftwareID",因为其他地方也有人建议这样做,但这也不起作用。

有什么建议吗?

Screenshot of Macro in question

我无法使用嵌入式宏让它工作,所以我改用了 VBA 宏,它起作用了 :)。要做到这一点(假设你以前没有做过):

  • 在设计视图中打开您的 "Software" 表单
  • 显示 属性 sheet(功能区 -> 设计选项卡)
  • 点击你的按钮
  • 单击 属性 sheet
  • 上的 "Event" 选项卡
  • 删除 "On Click" 事件
  • 右键单击您的按钮,然后单击 "Build Event"
  • 在 "Choose Builder" 弹出框中,单击 "Code Builder"
  • 假设您没有任何其他宏,您的代码应该看起来和我的一样,唯一的区别是按钮的名称(我的是 Command163)

p.s。我无法让代码标签正确显示,所以我只是添加了一些换行符。对不正确的缩进表示歉意。

选项比较数据库

私人订阅 Command163_Click()

DoCmd.RunCommand acCmdSaveRecord

openFreshAddLicenseForm (Me.ID)

结束子

Public 函数 openFreshAddLicenseForm(ID 为整数)

错误转到 Macro1_Err

DoCmd.OpenForm "Add License"

DoCmd.GoToRecord, "", acNewRec

表格![添加许可证]!SoftwareID = ID

Macro1_Exit:

退出函数

Macro1_Err:

MsgBox 错误$

恢复Macro1_Exit

结束函数