Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 组合框引用什么ID?_Ms Access - Fatal编程技术网

Ms access 组合框引用什么ID?

Ms access 组合框引用什么ID?,ms-access,Ms Access,我正试图维护和修复一个非常过时的CRM,该CRM由一位4-5年前的前员工在Access 2007中设计。我已经将它引入Access 2013,并修复了大量的问题,但我仍然遇到许多问题 今天我花了整整4个小时试图弄明白为什么某些值不一致。这些值是通过存储的查询从组合框上的SELECT语句中提取出来的,该查询只返回一个包含一些额外行的表。太好了 然而,这个值(一个数字)似乎与我们期望的不相关。我输入一个值,保存票据,然后一个完全不同的值被存储到表中。打开车票,我看到了我期望的价值。深入挖掘,我发现了

我正试图维护和修复一个非常过时的CRM,该CRM由一位4-5年前的前员工在Access 2007中设计。我已经将它引入Access 2013,并修复了大量的问题,但我仍然遇到许多问题

今天我花了整整4个小时试图弄明白为什么某些值不一致。这些值是通过存储的查询从组合框上的SELECT语句中提取出来的,该查询只返回一个包含一些额外行的表。太好了

然而,这个值(一个数字)似乎与我们期望的不相关。我输入一个值,保存票据,然后一个完全不同的值被存储到表中。打开车票,我看到了我期望的价值。深入挖掘,我发现了以下区别:

Set value_1 = Me.RegistrationID // What's being stored in the table
Set value_2 = Me.RegistrationID.Column(0) // What we expect
惊喜!这是一个组合框,表中存储了一些值。控制源是“RegistrationID”,行源是有问题的查询

但是我不知道它是什么!当我们稍后打开票据时,与组合框相关的特定值似乎会提取正确的数据。然而,我有一种强烈的感觉,这可能就是为什么删除其中一行之前的许多票证似乎都有无效的注册ID

  • 这个坏得有多严重
  • 我们能多容易地更正成千上万张票
  • 如何修复此问题以存储正确的值

注册ID通常应存储在表中。
只要表单显示与此注册ID直接相关的任何值,就可以了。

注册ID通常应存储在表中。
只要您的表单显示与此注册ID直接相关的任何值,您就可以了。

我将首先在“格式”设置下查看列宽设置是否正确,并在“数据”部分下检查绑定列是否正确。我还可能加入一个保存记录的更新后宏/vba子程序。希望这能有所帮助。

我会先检查“格式”设置下的列宽设置是否正确,然后检查“数据”部分下的绑定列是否正确。我还可能加入一个保存记录的更新后宏/vba子程序。希望这能有所帮助。

这正是我所期待的

组合框行源基于返回并显示多行的Select查询。例如:

Select RegistrationID, CustomerID, CustomerName From MyTable;
组合框的控件源绑定到作为表单记录源一部分的RegistrationID

问题是绑定列。如果我们将示例中的绑定列设置为1,那么我们将得到您描述的行为:

Set value_1 = Me.RegistrationID - Set's value to CustomerID (may appear correct)
Set value_2 = Me.RegistrationID.Column(0) - position 0 from our query (RegistrationID)
进一步基于我们的查询示例,您可以说:

Me.TextBox1 = Me.RegistrationID.Column(0) - RegistrationID
Me.TextBox2 = Me.RegistrationID.Column(1) - CustomerID
Me.TextBox3 = Me.RegistrationID.Column(2) - CustomerName

这就是我所期望的

组合框行源基于返回并显示多行的Select查询。例如:

Select RegistrationID, CustomerID, CustomerName From MyTable;
组合框的控件源绑定到作为表单记录源一部分的RegistrationID

问题是绑定列。如果我们将示例中的绑定列设置为1,那么我们将得到您描述的行为:

Set value_1 = Me.RegistrationID - Set's value to CustomerID (may appear correct)
Set value_2 = Me.RegistrationID.Column(0) - position 0 from our query (RegistrationID)
进一步基于我们的查询示例,您可以说:

Me.TextBox1 = Me.RegistrationID.Column(0) - RegistrationID
Me.TextBox2 = Me.RegistrationID.Column(1) - CustomerID
Me.TextBox3 = Me.RegistrationID.Column(2) - CustomerName

您需要查看绑定列,并将其与rowsource查询中字段的顺序进行比较。只要查询中的第一列没有更改,保存到database@dbmitch,这是我的问题:我们需要直接从案例中获取注册ID。这是我无法轻松关联的其他数字,因此它会破坏数据库中的其他表单。您需要查看绑定列,并将其与rowsource查询中字段的顺序进行比较。只要查询中的第一列没有更改,保存到database@dbmitch,这是我的问题:我们需要直接从案例中获取注册ID。它是拉一些其他的数字,我不能很容易地关联,因此它打破了数据库中的其他形式。啊哈!绑定列被设置为0,这(无论出于何种原因)是查询的索引(即,3个条目向下返回2)。看起来发生的情况是,查询被另一个偶尔更改的值排序,因此索引也会被移动。我将绑定列设置为1,这返回了我在第0列预期的值,即注册ID。现在一切都好了。非常感谢!啊哈!绑定列被设置为0,这(无论出于何种原因)是查询的索引(即,3个条目向下返回2)。看起来发生的情况是,查询被另一个偶尔更改的值排序,因此索引也会被移动。我将绑定列设置为1,这返回了我在第0列预期的值,即注册ID。现在一切都好了。非常感谢!