Access中的表单“对象未定义”错误

时间:2019-09-25 04:12:18

标签: vba forms ms-access

我已经在Word和Project中对用户表单进行了编程,但是没有问题,但是在MS Access中加载Form1时遇到了问题。它给了我这个错误:

  

对象变量或未设置With块

当我使用DoCmd.OpenForm "Form1", acNormal, , , , acDialog时,表单会启动。

我现在知道Load Form1在MS Access中不起作用。所以我必须使用DoCmd.OpenForm...

但是访问表格上输入的数据仍然有问题。

我的表单有两个输入字段:frm_Company and frm_Date,下面是代码。

Dim str_Company as String 'variable to capture result for form input
Dim date_Forecast as String 'variable to capture result of form input


DoCmd.OpenForm "Form1", acNormal, , , , acDialog

str_Company = Forms!Form1!frm_Company
date_Forecast = Forms!Form1!frm_Date

执行代码后,Form1启动,用户将输入两个字段的数据,然后按“关闭表单”按钮。当VBA尝试执行最后两行时,出现错误:

  

Microsoft找不到引用的窗体Form1

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不必仅使用表单对象变量来打开表单。只需引用表格名称-就像成功进行第三次尝试一样。然后,如果调用表单需要引用已打开的表单,请使用Forms集合。

Forms!Form1.controlname

Forms!Form1!fieldname

Me限定词引用对象代码在后面。

但是,acDialog暂停执行代码,直到被调用的窗体关闭。因此,当恢复第一个表单代码时,第二个表单已关闭并且无法找到。第二种形式后面的代码应首先引用以将值推回到第一种形式。另一种选择是设置全局变量或TempVars,然后可以通过任何过程对其进行引用。