【发布时间】:2019-09-25 04:12:18
【问题描述】:
我在 Word 和 Project 中编写了用户表单没有问题,但在 MS Access 中加载 Form1 时遇到问题。它给了我这个错误:
对象变量或未设置块
当我使用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
感谢您的帮助。
【问题讨论】:
-
如果您声明
Form1 As Form,然后在没有为该变量分配任何引用的情况下使用它,您 引用了一个无效的对象引用,这将始终引发错误 91。访问表单是文档模块,就像 Excel 中的工作表模块:它们属于 Access,而不是 VBA:它们与用户表单几乎没有共同之处,除了名称中的“表单”。 -
Me指的是当前对象,你不能用它在表格之外来引用那个表格。 -
为什么需要打开第二个表单?为什么你需要第二种形式的 2 个值?为什么不只是在第一个表单中输入数据?第二种形式是 UNBOUND 吗?
-
我的第一个表单打开了一个 Excel 文件,我将使用该文件将数据加载到我的数据库中。在我加载数据之前,我需要用户在
Form1上输入公司名称和文件日期,这将连同从 Excel 电子表格中获得的数据一起加载到数据库的每条记录中。 -
仍然没有解释为什么不能在第一个表单上输入这两个值。