带有onclick按钮的vb访问子表单

Posted

技术标签:

【中文标题】带有onclick按钮的vb访问子表单【英文标题】:vb access subform with onclick button 【发布时间】:2015-10-20 09:44:52 【问题描述】:

首先,我知道我的问题有点简单,但我对此很陌生。 我有一个包含按钮(generate_btn)、子表单(result_sbfrm)、表(table1)的表单。目标是,我希望我的子表单在单击按钮后显示查询结果。

这是我制作的代码:

Private Sub generate_btn_Click()
    Dim qry As String
    qry = "select * from Table1;"
    Me.result_sbfrm.Form.RecordSource = qry
End Sub

它返回错误 2467“您输入的表达式引用了一个已关闭或不存在的对象。”

调试在“Me.result_sbfrm.Form.RecordSource = qry”处停止

【问题讨论】:

@haraman:你对 MS Access 有什么了解吗?正如错误所示,您的“result_sbfrm”不存在。检查子表单名称是否正确或检查它是否分配了与表单名称不同的名称.. @haraman 是的,该操作被错误地标记为 vb.net。通过查看程序结构,你应该知道它根本不是 vb.net sub^^ @krishKM 这也可能意味着表单根本没有打开/加载。如果表单未打开,您将无法引用其中的任何内容.....即使表单确实存在。 @Fred 是的,你是对的。 @Fred 和 krishKM 感谢您的输入,是的 result_sbfrm 确实存在。我通过按 CTRL+Space 对它使用了智能感知,结果_sbrfm 在那里 【参考方案1】:

正如错误消息告诉你的那样,你正在尝试设置一个已关闭对象的记录源,因此请先打开它。

自从我使用 VBA 或 Access 以来已经有很长时间了,但是......

Private Sub generate_btn_Click()
    Dim qry As String
    qry = "select * from Table1;"
    DoCmd.OpenForm "result_sbfrm"
    Forms!result_sbfrm.RecordSource = qry 
End Sub

【讨论】:

感谢弗雷德的帮助, 感谢您的帮助 Fred,实际上这并不能完全解决我的问题,但我可以通过您提供的代码理解错误发生的逻辑。我找到了确切的解决方案,首先我们必须创建只显示查询的表单并使用我们想要的查询设置源,然后我们在主表单中创建子表单并创建事件以使用查询调用该表单我们放在前面。

以上是关于带有onclick按钮的vb访问子表单的主要内容,如果未能解决你的问题,请参考以下文章

如何从 vb.net 中的子表单访问父表单属性

onclick 打开子窗口并提交表单

VB.Net/Access SQL 插入子查询问题

访问 VBA 弹出子表单以提交条目

如何在 Visual Studio 中删除未使用的对象?

访问 - 使用父表单上的按钮使子表单字段不可见:)