首页 文章

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

提问于
浏览
1

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

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

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

如果我使用窗体底部的下一个/上一个导航按钮不会发生此问题 .

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

1 回答

  • 0

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

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

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

    • Object Type - 包含要使其成为当前记录的对象的类型 . 单击“宏构建器”窗格的“操作参数”部分的“对象类型”框中的“表”,“查询”,“表单”,“服务器视图”,“存储过程”或“函数” . 将此参数留空以选择活动对象 . < - 你的名字会留空,因为你指的是表格上的组合框

    • Object Name - 包含要创建当前记录的记录的对象的名称 . “对象名称”框显示“对象类型”参数所选类型的当前数据库中的所有对象 . 如果将“对象类型”参数留空,则也将此参数留空 . < - 因为第一个留空了

    • Record - 制作当前记录的记录 . 单击“记录”框中的“上一个”,“下一个”,“第一个”,“上一个”,“转到”或默认值为Next . < - This defaulted to First for me and possibly for you too ,可能是你看到这个'odd'行为的原因

    • Offset - 求值为整数的整数或表达式 . 表达式必须以等号(=)开头 . 此参数指定创建当前记录的记录 . 您可以通过两种方式使用Offset参数:当Record参数为Next或Previous时,Microsoft Office Access 2007会移动Offset参数中指定的向前或向后记录数 . 当Record参数为Go To时,Access将移动到具有等于Offset参数的记录 . 记录编号显示在窗口底部的记录编号框中 . 注意如果对Record参数使用First,Last或New设置,Access将忽略Offset参数 . 如果输入的Offset参数太大,Access将显示错误消息 . 您不能为Offset参数输入负数 .

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

相关问题