Ms access MS Access。子窗体的ADO记录集。按程序建立子关系。韩元';t自动填写字段

Ms access MS Access。子窗体的ADO记录集。按程序建立子关系。韩元';t自动填写字段,ms-access,vba,controls,ado,parent-child,Ms Access,Vba,Controls,Ado,Parent Child,我有一个表单/子表单,用于将数据输入ado表。主窗体的记录集是一个本地小部件表和有关小部件的信息(WidgetID、WidgetName、大小、颜色、位置等)。我通过连接到ADO记录集的子窗体将测试数据(每个小部件有多个测试,所有测试都有唯一的日期)输入到名为tests的表中。我在主窗体中有一个组合框findWidget,用户可以在其中选择WidgetID,它会更新主窗体上的一些信息。我还编写了VBA代码来执行父/子关系的工作,以更改子窗体的记录集,从而仅显示对应于该WidgetID的测试。但是

我有一个表单/子表单,用于将数据输入ado表。主窗体的记录集是一个本地小部件表和有关小部件的信息(WidgetID、WidgetName、大小、颜色、位置等)。我通过连接到ADO记录集的子窗体将测试数据(每个小部件有多个测试,所有测试都有唯一的日期)输入到名为tests的表中。我在主窗体中有一个组合框findWidget,用户可以在其中选择WidgetID,它会更新主窗体上的一些信息。我还编写了VBA代码来执行父/子关系的工作,以更改子窗体的记录集,从而仅显示对应于该WidgetID的测试。但是,在子窗体中有一个WidgetID字段,我希望在主窗体中选择WidgetID时自动填充该字段。在我应用ADO记录集(我使用了两个本地表)并设置了父/子关系之前,这就起作用了。但是,使用ADO时,似乎父/子对象不起作用,因此我必须对其进行vba。以下是我尝试过的代码,用于加载子窗体时:
私有子表单加载()
Me.UCI=表单!InputMainForm.findWidget
末端接头

代码执行时没有错误,但子窗体中的控件未更新。加载表单时,它只是空白。也许代码应该在findWidget组合的更新后出现?我不知道。如果我把它放在那里,我真的不知道如何引用子窗体的控件。有什么想法吗?

谢谢。

修好了。我只是将子窗体中控件的默认值设置为等于主窗体中的控件。我还将子窗体控件设置为锁定,以便用户无法选择其他小部件。这意味着在整个界面中只有一个地方供用户选择一个小部件,这就是主窗体(findWidget)

感谢您回来给出答案。您为什么认为需要ADO记录集?为什么不将子窗体的记录源设置为创建ADO记录集时使用的SQL?然后,子窗体对象的父/子链接将负责在子窗体中填充FK。在我看来,你的问题是因为你没有以标准的访问方式进行操作,所以我想听听你为什么认为需要使用ADO记录集的解释。简单的回答是我的老板让我使用ADO。在我从SQL数据库“链接”表之前。为了做到这一点,我必须在我的计算机上建立ODBC连接。我相信使用ADO的想法是不必设置ODBC。通过这种方式,我们可以将mdb传递给任何员工,他们可以直接从桌面使用它。我不能仅仅通过SQL来引用它。必须首先设置一些连接:链接表或ADO连接。