Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在组合框中设置自定义行源已更改,添加的记录未保存_Ms Access_Combobox_Vba_Ms Access 2016 - Fatal编程技术网

Ms access 在组合框中设置自定义行源已更改,添加的记录未保存

Ms access 在组合框中设置自定义行源已更改,添加的记录未保存,ms-access,combobox,vba,ms-access-2016,Ms Access,Combobox,Vba,Ms Access 2016,我有一个带有订单子表单的客户表单,客户和订单之间存在一对多关系。此子表单位于“数据表”视图中,可编辑,因此access应用程序的用户可以向客户添加订单。添加到子窗体的订单必须与订单表中的一个条目匹配。总而言之,这是一个相当标准的表单子表单设置。当用户向客户添加完订单后,他关闭表单,订单将自动保存到客户和订单之间的交集表中。注意,这个组合框有一个行源属性,类似 SELECT ORDER_ID, ORDER_NAME from ORDERS; 这一切都很好 现在,如果我修改了数据表中的组合框,使其

我有一个带有订单子表单的客户表单,客户和订单之间存在一对多关系。此子表单位于“数据表”视图中,可编辑,因此access应用程序的用户可以向客户添加订单。添加到子窗体的订单必须与订单表中的一个条目匹配。总而言之,这是一个相当标准的表单子表单设置。当用户向客户添加完订单后,他关闭表单,订单将自动保存到客户和订单之间的交集表中。注意,这个组合框有一个行源属性,类似

SELECT ORDER_ID, ORDER_NAME from ORDERS;
这一切都很好

现在,如果我修改了数据表中的组合框,使其没有行源属性,并在组合框的OnChanged事件中将RowSource动态设置为等于一个自定义SQL查询,我就可以在组合框中获得我正在寻找的选项的自定义筛选。但是,当用户保存并关闭表单时,在子表单中输入的客户和订单之间的链接不会保存到我的交集表中

因此,我的问题似乎是,将行源从静态属性更改为SQL中动态更改的内容会阻止用户保存添加到客户的订单。这是我正在做的唯一改变。完成后,对子窗体所做的添加将停止保存到我的交集表中

我正在将组合框的Row Source属性设置为in OnChanged的SQL字符串类似于以下VBA代码:

Dim comboText
comboText = Me.OrdersComboBox.Text

Me.OrdersComboBox.RowSource = "SELECT ORDER_ID, ORDER_NAME FROM ORDERS WHERE ORDER_NAME LIKE '*" & comboText & "*' OR ORDER_SHORTNAME LIKE '*" & comboText & "*';"
基本上,我只是想通过允许用户根据完整订单名或订单短名称搜索订单表来改进组合框的自动完成功能


但是,当我在OnChanged中设置组合框的行源时,我无法将添加的内容保存到数据表中。有什么想法吗?

我试过了,但无法复制这个问题。代码对我有用。如何提交记录?通过移动到另一行?是的,通过选择子窗体数据表中的下一行,我可以提交记录。这些提交在行源设置为属性时保存,但在VBA中设置行源时不保存。