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

Posted

技术标签:

【中文标题】使用组合框切换记录时访问显示第一条记录【英文标题】:Access displaying first record when using combo box to switch records 【发布时间】:2014-12-16 14:28:41 【问题描述】:

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

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

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

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

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

【问题讨论】:

使用向导所做的是在您的组合框点击事件后面创建一个宏。它可能看起来像 .. , , First, ="[SomeField] = " & Str(Nz(Screen.ActiveControl,0)) .. 你实际上可以做的,而不是使用宏,是遵循类似 this @Invent - Animate - 这行得通,谢谢。你有解释为什么 Access 会这样吗?如果您将评论移至我可以接受的答案。 【参考方案1】:

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

如果我们看看那个宏做了什么(或者它接受什么参数),就会更清楚你为什么会遇到这种行为。

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

    Object Type - 包含您想要的记录的对象类型 使电流。单击表、查询、表单、服务器视图、存储 操作中对象类型框中的过程或函数 宏生成器窗格的参数部分。离开这个论点 空白以选择活动对象。 您的将留空,因为您指的是表单上的组合框 Object Name - 包含您的记录的对象的名称 想要制作当前的记录。对象名称框显示所有 对象选择的类型的当前数据库中的对象 类型参数。如果您将对象类型参数留空,请留 这个论点也空白。 因为第一个是空白的 Record - 制作当前的记录 记录。单击上一个、下一个、第一个、最后一个、转到或新建 记录箱。默认值为下一步。 这对我来说默认为 First,可能对你也一样,这可能是你看到这种“奇怪”行为的原因 Offset - 一个整数或计算结果为整数的表达式。一个 表达式必须以等号 (=) 开头。这个论点 指定要创建当前记录的记录。您可以使用 两种方式的偏移参数:当 Record 参数是 Next 或 以前,Microsoft Office Access 2007 移动记录数 在 Offset 参数中指定的向前或向后。当。。。的时候 记录参数是 Go To,Access 移动到带有编号的记录 等于 Offset 参数。记录编号显示在 窗口底部的记录编号框。注意如果您使用 Record 参数 Access 的 First、Last 或 New 设置 忽略 Offset 参数。如果您输入一个 Offset 参数,即 太大,Access 会显示错误消息。你不能进入 Offset 参数的负数。

我希望我能给您提供更多详细信息,但我没有将 Access 与 SQL Server 结合使用,因此如果考虑到这一点,我将没有任何见解。

【讨论】:

以上是关于使用组合框切换记录时访问显示第一条记录的主要内容,如果未能解决你的问题,请参考以下文章

访问 VBA - 使用组合框(多值字段)时类型不匹配

Extjs 3.4 ComboBox:首次加载组合框时如何预选一条记录?

访问 2007 组合框上的选定值未显示在多个记录上

通过连续形式访问循环

如何让组合框2显示仅与组合框1中所做的选择相关的记录?

根据多个组合框过滤查询,但如果组合框为空,则显示所有记录,包括空,