Ms access 是否改为尝试更新组合框更新表?

Ms access 是否改为尝试更新组合框更新表?,ms-access,vba,Ms Access,Vba,我是一个有点入门的新手,但我正在慢慢地理解。我正在工作中重建一个数据库,在更新组合框方面我遇到了一个奇怪的问题 我想做的是,先用复合体,然后用机器名,把我们工厂的每个部分分开。为此,我使用了两个组合框;第一个列表列出了各种综合体,第二个列表列出了该综合体可用的各种机器。通过选择一个复合体,然后选择一台机器,我想列出与该特定机器关联的所有数据 但是,我遇到的问题是,在尝试更新机器组合框时,我表单中的一个文本框(我已设置为锁定)将使用所选复合体的索引进行更新。然后,该索引将替换复杂表中第一个条目的名

我是一个有点入门的新手,但我正在慢慢地理解。我正在工作中重建一个数据库,在更新组合框方面我遇到了一个奇怪的问题

我想做的是,先用复合体,然后用机器名,把我们工厂的每个部分分开。为此,我使用了两个组合框;第一个列表列出了各种综合体,第二个列表列出了该综合体可用的各种机器。通过选择一个复合体,然后选择一台机器,我想列出与该特定机器关联的所有数据

但是,我遇到的问题是,在尝试更新机器组合框时,我表单中的一个文本框(我已设置为锁定)将使用所选复合体的索引进行更新。然后,该索引将替换复杂表中第一个条目的名称

下面列出了用于更新机器组合框的VBA代码。(在将此代码合并到多项目表单的标题中之前,我没有任何问题。)

编辑 下面的链接显示了正在发生的事情的屏幕截图,以帮助澄清。
这是一个答案和一条评论,但我的评论越来越长,我喜欢格式,所以我将其发布

一目了然,您应该使用未绑定的控件来控制过滤框(机器和复合体)

表单的记录源(假设机器表数据,您可以根据需要对其进行定制)可以绑定到以下内容:

SELECT*FROM machine WHERE complexID=[Forms]![我的表格]![cboComplex]和Machine=[Forms]![我的表格]![cboMachine]

更新这些框时,您可以
form.requery

或者你可以让它更通用,比如
Select*FROM Machine
,在更新机器组合框后,只需设置表单的
Filter
属性

因此,在组合框更新后(您可以单独筛选每个组合框,或者假设/要求从每个组合框中进行选择),您可以设置一个筛选器

 Me.Filter = "Complex = """ & Me.cboComplex & """"
 me.filteron = true

这些只是关于如何实现这一点的几点建议。至于你的过滤框更新你的表数据,我假设这是因为你把它们绑定到了你的表:)

这是一个答案和一条评论,但我的评论越来越长,我喜欢格式,所以我发布它

一目了然,您应该使用未绑定的控件来控制过滤框(机器和复合体)

表单的记录源(假设机器表数据,您可以根据需要对其进行定制)可以绑定到以下内容:

SELECT*FROM machine WHERE complexID=[Forms]![我的表格]![cboComplex]和Machine=[Forms]![我的表格]![cboMachine]

更新这些框时,您可以
form.requery

或者你可以让它更通用,比如
Select*FROM Machine
,在更新机器组合框后,只需设置表单的
Filter
属性

因此,在组合框更新后(您可以单独筛选每个组合框,或者假设/要求从每个组合框中进行选择),您可以设置一个筛选器

 Me.Filter = "Complex = """ & Me.cboComplex & """"
 me.filteron = true

这些只是关于如何实现这一点的几点建议。至于您的筛选器框更新表数据,我假设这是因为您将它们绑定到了表:)

文本框是否绑定到了表?也许您应该创建一个未绑定的框并填充它?我试图了解您想要完成什么当您选择一个复合体时,您希望第二个下拉列表只过滤到该复合体的机器,然后使用该机器和复合体ID填充表单的数据?是的,此时,文本框绑定到我的表。它目前是绑定的,因为我试图弄清楚多个条目表单是如何工作的,但这对于我为什么需要填充它是有意义的。是的,关于我希望如何填充我的表单,您也是正确的。抱歉,不够清晰。文本框是否绑定到您的表?也许您应该创建一个未绑定的框并填充它?我试图了解您想要完成什么当您选择一个复合体时,您希望第二个下拉列表只过滤到该复合体的机器,然后使用该机器和复合体ID填充表单的数据?是的,此时,文本框绑定到我的表。它目前是绑定的,因为我试图弄清楚多个条目表单是如何工作的,但这对于我为什么需要填充它是有意义的。是的,关于我希望如何填充我的表单,您也是正确的。很抱歉不够清晰。好吧,我理解你的意思,我只是想让它起作用。我只需要弄清楚如何正确使用form.requery。如果您选择我的第一个建议,在第二个组合框(或第一个组合框)的
更新后
事件中,您可以放置
[Forms]![myForm]。重新查询
和可能的
[Forms]![myForm]。刷新
没问题,很高兴你能理解。好的,我理解你的意思,我只是让它正常工作。我只需要弄清楚如何正确使用form.requery。如果您选择我的第一个建议,在第二个组合框(或第一个组合框)的
更新后
事件中,您可以放置
[Forms]![myForm]。重新查询
和可能的
[Forms]![myForm]。刷新
没问题,很高兴你能理解。