Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

access编程-操作(宏)[6]

时 间:2009-03-20 08:18:50
作 者:UMVsoft资料   ID:11  城市:上海  QQ:3002789054点击这里给麥田发消息
摘 要:Access编程-操作(宏)
正 文:

FindRecord 操作[6]

使用 FindRecord 操作,可以查找符合 FindRecord 参数指定条件的数据的第一个实例。该数据可能是在当前的记录中,在之前或之后的记录中,也可以是在第一个记录中。可以在活动的表数据表、查询数据表、窗体数据表或窗体中查找记录。

FindRecord 操作具有下列参数:

操作参数

说明

查找内容

指定要在记录中查找的数据。请输入想要查找的文本、数字或日期,或在窗口操作参数部分的查找内容框中,键入以等号 (=) 开始的表达式。可以使用通配符。该参数是必需的参数。

匹配

指定数据在字段中所在的位置。可以指定搜索字段中任何部分(字段任何部分)的数据、搜索整个字段中(整个字段)的数据或搜索位于字段开头部分(字段开头)的数据。默认值为整个字段

区分大小写

指定该搜索是否区分大小写。可单击(进行区分大小写的搜索)或(不区分大小写字母的搜索)。默认值为

搜索

指定是从当前记录向记录开头进行搜索(向上)还是向记录结尾进行搜索(向下),或是向下搜索到记录结尾然后再从记录开头搜索到当前记录,以便对所有的记录都进行搜索(全部)。默认值为全部

格式化搜索

指定搜索中是否包含带格式的数据。可单击Microsoft Access 在搜索时按字段中所显格式看待数据)或Access 搜索数据库中存储的数据,这些数据并不总是与其显示的格式相同)。默认值为

可以使用该功能限制搜索某一特定格式的数据。例如,如果单击,并在查找内容参数中键入 1,234,则会在字段中查找包括逗号的格式化数值 1,234。如果要键入 1234 以在该字段中搜索数据,则单击

搜索日期时,单击可以查找格式完全相同的日期,例如 09-March-2001。如果单击,则要按 Windows 控制面板的区域设置中设置的格式在查找内容参数中输入日期,该格式显示在区域设置日期选项卡上的短日期格式框中。例如,如果短日期格式框设置为 M/d/yy,则可以输入 3/9/01,并且 Access 将在日期字段中查找所有与 2001 3 9 日相对应的项目,而忽略该字段的格式。

注意   只有在当前字段为绑定控件,而匹配参数设置为整个字段,并且只搜索当前字段参数设置为,以及区分大小写参数设置为时,格式化搜索参数才会生效。

如果将区分大小写设置为,或者将只搜索当前字段设置为,则还必须将格式化搜索参数设置为

只搜索当前字段

指定是在每个记录的当前字段中进行搜索还是在每个记录的所有字段中进行搜索。在当前字段中进行搜索较快。可单击(只在当前字段中搜索)或(在每个记录的所有字段中搜索)。默认值为

查找第一个

指定是从第一个记录还是从当前记录开始搜索。 可单击(从第一个记录开始)或(从当前记录开始)。默认值为

说明    当某个运行 FindRecord 操作时,Access 将在记录中搜索指定数据(搜索的顺序由搜索参数的设置决定)。当 Access 查找到指定的数据时,该数据会在记录中被选定。

FindRecord 操作与单击编辑菜单中的查找命令具有相同的作用,而且其参数与在字段中查找对话框中的选项相同,可以通过单击编辑菜单中的查找打开该对话框。如果在窗口中设置 FindRecord 参数,然后运行宏,那么单击查找命令时,将会在在字段中查找对话框中看到已选择了对应的选项。

在一次数据库会话中,Access 会保留最近的 FindRecord 参数,执行后续的 FindRecord 操作时,无需重复输入同样的条件。如果将某个参数留空,Access 会使用该参数最近的设置,即由上一次 FindRecord 操作或在字段中查找对话框中进行的设置。

如果想通过宏来查找记录,请使用 FindRecord 操作,而不要使用 RunCommand 操作并将其参数设置为运行查找命令。

注意   虽然 FindRecord 操作可以对应于表、查询和窗体的编辑菜单上的查找,但是不对应于代码”窗口编辑菜单上的查找。不能使用 FindRecord 操作来搜索模块中的文本。

如果在执行 FindRecord 宏操作时当前选择的文本与搜索文本相同,那么搜索会紧接所选内容之后在同一字段、同一记录中开始。否则搜索会从当前记录的开头开始。这样可以在单个记录中查找符合相同搜索条件的多个实例。

不过,请注意,如果使用命令按钮来执行包含 FindRecord 操作的宏,系统会重复查找符合搜索条件的第一个实例。之所以发生这种情况,是因为单击命令按钮时,会从包含匹配值的字段中删除焦点,然后 FindRecord 操作将从记录的开头进行搜索。若想避免这种问题,可使用不改变焦点的技术执行宏,这些技术包括自定义工具栏按钮或 AutoKeys 宏中定义的组合键,也可以在执行 FindRecord 操作之前,在宏中将焦点设置到包含搜索条件的字段中。

如果使用命令按钮来运行包含 FindNext 操作的宏,也会发生同样的情况。

若要在 Visual Basic 中运行 FindRecord 操作,请使用 DoCmd 对象的 FindRecord 方法。

GoToControl 操作

使用 GoToControl 操作,可以把焦点移到打开的窗体、窗体数据表、表数据表或查询数据表中当前记录的指定字段控件上。如果要让某一特定的字段或控件获得焦点,可以使用该操作。然后可将获得焦点的字段或控件用于比较或 FindRecord 操作。另外,还可以根据特定的条件,使用该操作在窗体中进行定位。例如,如果用户在健康保险窗体中的婚姻控件下输入,那么焦点会自动跳过配偶姓名控件而移到下一个控件。

注意    此操作不能用于数据访问页。

GoToControl 操作具有下列参数:

操作参数

说明

要在其中放置焦点的字段或控件的名称。在窗口操作参数部分的控件名称框中输入字段名称或控件名称。这是必需的参数。

注意   控件名称参数中只需输入字段名称或控件名称,而不必输入完全合格的标识符,如 Forms!产品![产品 ID]

说明   不能使用 GoToControl 操作将焦点移到隐藏窗体的控件上。

提示   可以使用 GoToControl 操作将焦点移动子窗体上,子窗体是一种控件。然后可以使用 GoToRecord 操作移到子窗体中的特定记录中。另外,也可以移到子窗体的控件上,方法是使用 GoToControl 操作先移到子窗体中,然后再移动到子窗体上的控件上。

若要在 Visual Basic 中运行 GoToControl 操作,可使用 DoCmd 对象的 GoToControl 方法。也可以使用 SetFocus 方法,将焦点移到窗体或其任何子窗体的控件上或者打开的表、查询、窗体数据表的字段中。

示例  通过使用宏设置控件的值 - 示例

下面的宏使用供应商窗体中的一个按钮打开增加产品窗体。它显示了 EchoCloseOpenFormSetValue GoToControl 操作的使用方法。SetValue 操作将产品窗体中的供应商ID”控件设置为供应商窗体中的当前供应商,然后 GoToControl 操作将焦点移到类别ID”字段,以便输入新产品的数据。该宏应附加到供应商窗体的添加产品按钮上。

操作

参数:设置

备注

Echo

打开回响:否

在宏执行当中停止屏幕更新。

Close

对象类型:窗体 对象名称:产品列表  保存:

关闭产品列表窗体。

OpenForm

窗体名称:产品 视图:窗体 数据模式:添加 窗口模式:普通

打开产品窗体。

SetValue

项目:[Forms]![产品]![供应商ID]  表达式:供应商ID

供应商ID”控件设为供应商窗体中的当前供应商。

GoToControl

控件名称:类别ID

移到类别ID”控件。

通过使用宏验证数据有效性

下面的验证宏检查在供应商窗体中输入的邮政编码。它显示 StopMacroMsgBoxCancelEvent GoToControl 操作的使用方法。条件表达式用于检查在该窗体上记录中输入的国家/地区和邮政编码。如果邮政编码不符合其国家/地区的正确格式,宏将显示消息框,并取消对记录的保存。然后您将返回到邮政编码控件并可以在那里改正错误。该宏应附加到供应商窗体的 BeforeUpdate 属性。

条件

操作

参数:设置

备注

IsNull([国家/地区])

StopMacro

 

如果国家/地区 Null,就无法验证邮政编码。

[国家/地区] In ("法国","意大利","西班牙") And Len([邮政编码]) <> 5

MsgBox

消息:邮政编码必须为 5 个字符。  发嘟嘟声: 类型:信息 标题:邮政编码错误

如果邮政编码不是 5 个字符,则会显示消息。

...

CancelEvent

 

取消事件。

 

GoToControl

控件名称:邮政编码

 

[国家/地区] In ("澳大利亚","新加坡") And Len([邮政编码]) <> 4

MsgBox

消息:邮政编码必须为 4 个字符。  发嘟嘟声: 类型:信息 标题:邮政编码错误

如果邮政编码不是 4 个字符,则会显示消息。

...

CancelEvent

 

取消事件。

 

GoToControl

控件名称:邮政编码

 

([国家/地区] = "加拿大") And ([邮政编码] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]")

MsgBox

消息:邮政编码无效。加拿大编码示例:H1J 1C3 发嘟嘟声: 类型:信息 标题:邮政编码错误

如果邮政编码不符合加拿大的有效格式,则会显示消息。(加拿大编码示例:H1J 1C3

...

CancelEvent

 

取消事件。

 

 

上一课  下一课



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助