我有一个表格frm_New_Datasheet
,可以将志愿者的数据表输入到我正在创建的数据库中。对于志愿者ID文本框txt_Vol_ID
,我有两个按钮可以搜索现有的志愿者或添加一个新的志愿者,每个按钮分别打开一个表单。添加新的志愿者后,我希望Vol_ID
中的frm_Volunteers
传递回frm_New_Datasheet
。
为此,我在志愿者表单中添加了以下代码:
Private Sub Form_AfterInsert()
If Not IsNull(Me.vol_Vol_ID) Then
Dim volVal As Double
volVal = Me.vol_Vol_ID
Forms!frm_New_Datasheet!txt_Vol_ID.Value = volVal
End If
End Sub
效果很好。然后,我尝试创建“搜索志愿者”表单,并向其中添加了相同的代码,但是现在我在这两个表单上都遇到了以下错误:
运行时错误-2146500594(800f000e):
对象“表单”的方法“项目”失败
调试器突出显示了我设置.Value = volVal
的行,因此我在寻找其他方法来调用该文本框,但还没有走运。我已经尝试过
Forms([frm_New_Datasheet]).[txt_Vol_ID] = volVal`
但这给了我一个不同的错误:
运行时错误“ 2465”:
Microsoft Access找不到表达式中引用的字段“ | 1”
对此我感到很迷茫,因为我想我正确地调用了另一个表单的文本框,当我搜索第一个运行时错误时,我发现的最佳建议是“有时VBA出现故障并尝试重新启动”没有帮助。到目前为止,这是最好的主意,我必须将值从一种形式传递给另一种形式。如果还有其他地方,我可以放下这段代码,或者以其他方式给这只猫剥皮。
谢谢!
答案 0 :(得分:0)
看起来您应该更仔细地检查表单/控件名称,并确保表单frm_New_Datasheet
已打开。
以下是通过表单名称引用Forms集合的正确变体:
Forms("frm_New_Datasheet").txt_Vol_ID = volVal
答案 1 :(得分:0)
我不确定这是否真的可以作为答案,但是在HansUp帮助我解决了上面的注释中的一些麻烦之后,我只是复制了未找到的表单(仍然不确定原因),并粘贴了一个新名称,并删除了原始表格。之后,一切工作正常。