【问题标题】:Access 2016 set form field based on previous form valueAccess 2016 根据以前的表单值设置表单字段
【发布时间】:2017-02-17 04:11:19
【问题描述】:

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

我有一个为软件创建的表单,并想创建一个按钮,单击该按钮会打开一个新的“添加许可证”表单,该表单预先填充了软件 ID,人们可以在该表单上填写其余信息. 我一直在使用类似 Office 2016 模板中的宏,但在尝试将此信息放入新的许可证表单时,它会不断崩溃。

我在下面附上了我的宏的屏幕截图 - 我现在已经经历了很多次迭代,我得到的错误是 30024,这似乎表明它找不到将 SoftwareID 放入新的字段打开的表格。 我还将“控件名称”设置为“SoftwareID”,因为这在其他地方也有建议,但这也不起作用。

有什么建议吗?

Screenshot of Macro in question

【问题讨论】:

  • 我强烈建议您将代码转换为 Visual Basic。诊断起来会容易得多。

标签: ms-access vba ms-access-2016


【解决方案1】:

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

  • 在设计视图中打开“软件”表单
  • 显示属性表(功能区 -> 设计选项卡)
  • 点击您的按钮
  • 单击属性表上的“事件”选项卡
  • 删除“点击时”事件
  • 右键单击您的按钮,然后单击“构建事件”
  • 从“选择生成器”弹出框中,单击“代码生成器”
  • 假设您没有任何其他宏,您的代码应该和我的一样,唯一的区别是按钮的名称(我的是 Command163)

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

选项比较数据库

私有子命令163_Click()

DoCmd.RunCommand acCmdSaveRecord

openFreshAddLicenseForm (Me.ID)

结束子

公共函数 openFreshAddLicenseForm(ID As Integer)

出错时转到 Macro1_Err

DoCmd.OpenForm "添加许可证"

DoCmd.GoToRecord , "", acNewRec

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

Macro1_Exit:

退出函数

Macro1_Err:

消息框错误$

恢复 Macro1_Exit

结束函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多