访问:尝试打开表单并使用其他表单中的值填充文本框

时间:2018-04-16 15:09:19

标签: vba ms-access

好吧,我显然做错了什么,但无法弄清楚它是什么,这应该很简单。

我在表单上有一个按钮,用于打开另一个表单,并使用第一个表单中的值填充第二个表单中的文本框。

这是我的代码:

Private Sub test_Click()
DoCmd.OpenForm "subfrm_EA_COMMENT_ADD"
Forms!subfrm_EA_COMMENT_ADD.txtUWI = Me.txtUWI
End Sub

这很好用,但是我希望在对话框窗口中打开表单,所以我将脚本修改为:

Private Sub test_Click()
DoCmd.OpenForm "subfrm_EA_COMMENT_ADD", acNormal, , , acFormAdd, acDialog
Forms!subfrm_EA_COMMENT_ADD.txtUWI = Me.txtUWI
End Sub

现在我收到运行时错误2450.

我一直在搜索这个错误,但找不到任何有用的答案。

有人能指出我正确的方向,我缺少什么吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

acDialog参数导致第一个表单的代码执行暂停,直到第二个表单关闭。因此,要么删除参数,要么以第二种形式放置代码以填充自己的记录。

使用OpenArgs参数传递值:

Private Sub test_Click()
DoCmd.OpenForm "subfrm_EA_COMMENT_ADD", acNormal, , , acFormAdd, acDialog, Me.txtUWI
End Sub

要读取OpenArgs属性,可以在Current事件中使用第二种形式的代码:

If Me.NewRecord Then Me.txtUWI = Me.OpenArgs

答案 1 :(得分:0)

我使用临时变量找到了解决此问题的方法。我在“添加注释”按钮的开头创建了一个临时变量,然后将“注释”对话框窗口中的未绑定文本框设置为临时变量的值。这就像一个魅力,我现在可以在对话框中打开我的窗户,而不是正常。

我只是想让其他人知道,以防他们遇到这个问题。