使用组合框切换记录时访问显示第一条记录
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 结合使用,因此如果考虑到这一点,我将没有任何见解。
【讨论】:
以上是关于使用组合框切换记录时访问显示第一条记录的主要内容,如果未能解决你的问题,请参考以下文章