使用组合框切换记录时访问显示第一条记录

时间:2014-12-16 14:28:41

标签: ms-access combobox ms-access-2010

我有一个Access数据库,它使用驻留在SQL Server上的链接表。对于其中一个表,我创建了一个简单的表单,显示了基础表的几个字段。

我想使用组合框切换记录,所以我使用组合框向导添加了一个,我选择了“根据我在组合框中选择的值在表单上查找记录”选项。

组合框有效,但我注意到只要选择了新值,Access就会在显示所选记录之前暂时返回第一条记录。我可以通过注意屏幕闪烁(例如,绑定字段简要显示来自第一个记录的数据)以及分析对SQL Server的调用来验证这一点,在那里我可以看到第一个记录的一个查询,另一个查询选择的记录。

如果我使用表单底部的下一个/上一个导航按钮,则不会发生此问题。

如何避免这种不必要的查询?

1 个答案:

答案 0 :(得分:0)

使用向导所做的是在你的组合框点击事件背后创建一个宏。它可能看起来像.. , , First, ="[SomeField] = " & Str(Nz(Screen.ActiveControl,0)) ..您可以实际执行的操作,而不是使用宏,可以使用类似this

的内容

如果我们看一下Macro做了什么(或者它接受了什么参数),那么你可能会更清楚地知道为什么会遇到这种行为。

第一个参数是Object Type然后是Object Name,然后是Record,然后是Offset

  1. Object Type - 包含所需记录的对象类型 使当前。单击表,查询,表单,服务器视图,存储 “操作”中“对象类型”框中的过程或函数 “宏生成器”窗格的“参数”部分。留下这个论点 空白以选择活动对象。 < - 您的内容将留空,因为您在表单上引用了组合框
  2. Object Name - 包含您的记录的对象的名称 想要制作当前的记录。 “对象名称”框显示全部 Object所选类型的当前数据库中的对象 输入参数。如果将“对象类型”参数留空,请保留 这个论点也是空白的。 < - 因为第一个留空了
  3. Record - 制作当前的记录     记录。单击上一个,下一个,第一个,最后一个,转到或新建     记录框。默认值为Next。 < - 这对我来说违反了First,也可能对你而言可能是为什么你会看到这个'奇怪的'行为
  4. Offset - 一个求值为整数的整数或表达式。一个 表达式必须以等号(=)开头。这个论点 指定要创建当前记录的记录。你可以使用 偏移参数有两种方式:当Record参数为Next或 以前,Microsoft Office Access 2007会移动记录数 在Offset参数中指定的向前或向后。当。。。的时候 记录参数是Go To,Access移动到带有数字的记录 等于Offset参数。记录号显示在 窗口底部的记录编号框。注意如果您使用 Record参数Access的First,Last或New设置 忽略Offset参数。如果输入的是Offset参数 太大,Access显示错误消息。你无法进​​入 Offset参数的负数。
  5. 我希望我能为您提供更多详细信息,但我没有将Access与SQL Server结合使用,因此如果考虑到这一点,我就没有任何见解。