access窗体,通过窗体的控件查询记录,运用ApplyFilter却查询不到

2985人阅读
◆ 宏的概念和功能
◆ 宏的建立和应用
宏是一个或多个操作的集合,其中每个操作执行特定的功能。如果用户频繁地重复同一系列操作,就可以创建宏来执行这些操作。宏由一些操作和命令组成,这些操作和命令用来完成自动化操作。用户可以通过创建宏来自动执行某一项重复的或者复杂的任务。
在创建宏时,就定义了一系列任务,只要启用宏,Access就执行了这些任务。
一、宏的功能
宏是一种功能强大的工具,可用来在Access 2003 中自动执行许多操作。通过宏的自动执行重复任务的功能,可以保证工作的一致性,还可以避免由于忘记某一操作步骤而引起的错误。宏节省了执行任务的时间,提高了工作效率。
宏的具体功能如下:
◆ 显示和隐藏工具栏。
◆ 打开和关闭表、查询、窗体和报表。
◆ 执行报表的预览和打印操作以及报表中数据的发送。
◆ 设置窗体或报表中控件的值。
◆ 设置Access工作区中任意窗口的大小,并执行窗口移动、缩小、放大和保存等操作。
◆ 执行查询操作,以及数据的过滤、查找。
◆ 为数据库设置一系列的操作,简化工作。
二、创建宏
&&& 单击数据库窗口的【宏】选项卡中的【新建】按钮,即可打开宏的定义窗口和宏的设计工具栏。
1.宏设计的基础知识
【宏设计】工具栏:
【宏名】&&& 显示宏定义窗口中的&宏名&列。
【条件】&&& 显示宏定义窗口中的&条件&列。
【插入行】&在宏定义表中设定的当前行的前面增加一空白行。
【删除行】&删除当前行。
【运行】&&& 运行宏。
【单步】&&& 单步运行宏。
【生成器】&设置宏的操作参数。
宏定义窗口如下:
默认情况下,宏定义窗口上面部分由两列组成:操作和注释列。
【操作】列&&&&& 在此列中输入宏中所有操作,运行时将按照输入顺序执行操作。
【注释】列&&&&& 在此列中输入对应操作的备注说明。
【宏名】列&&&&& 在此列中输入宏的名称,在多个操作的宏组中这一列是必选的。
【条件】列&&&&& 在此列中输入条件表达式,以决定运行宏的条件。
【操作参数列】&用以设定操作的相关参数。
在操作列中,提供了50多种操作,用户可以从这些操作中做选择,创建自己的宏。而对于这些操作,用户可以通过查看帮助,从中了解每个操作的含义和功能。
⑴ 在宏中添加操作
主要操作说明:
◆ AddMenu& 将菜单添加到窗体或报表的自定义菜单栏,菜单栏中每个菜单都需要一个独立的AddMenu操作。此外,也可以为窗体、窗体控件或报表添加自定义快捷菜单,或为所有的窗口添加全局菜单栏或全局快捷菜单。
◆ ApplyFilter& 对表、窗体或报表应用筛选、查询或SQL WHERE子句,以便对表的记录、窗体、报表的基础表或基础查询中的记录进行相应的操作。对于报表,只能在其&打开&事件属性所指定的宏中使用该操作。
◆ Beep 可以通过计算机的扬声器发出嘟嘟声,一般用于警告声。
◆ CancelEvent& 取消一个事件,该事件导致Access执行包含宏的操作。
◆ Close&&& 关闭指定的Access窗口。如果没有指定窗口,则关闭活动窗口。
◆ CopyObject&& 将指定的数据库对象复制到另外一个Access数据库(.mdb)中。或以新的名称复制到同一数据库或Access项目(.adp)中。
◆ CopyDatabaseFile 为当前的与Access项目连接的SQL Server 7.0或更高版本数据库作副本。
◆ DeleteObject 删除指定的数据库对象。
◆ Echo 指定是否打开回响。例如:可以使用该操作在宏运行时隐藏或显示运行结果。
◆ FindNext 查找下一个符合前一个FindRecord操作或【在字段中查找】对话框中指定条件的记录。
◆ FindRecord&& 查找符合FindRecord参数指定条件的数据的第一个实例。该数据可能在当前的记录中,在之前或之后的记录中,也可以在第一个记录中,还可以在活动的数据表、查询数据表、窗体数据表或窗体中查询记录。
⑵ 设置操作参数
选定操作后,在【操作参数】区域会出现相应的操作参数。可以在各操作参数对应的文本框中输入数值,以设定操作参数的属性。如上图中。也可以使用表达式生成器生成的表达式设置操作参数。
⑶ 创建宏组
如果有多个宏,可将相关的宏设置成宏组,以便于用户管理数据库。使用宏组可以避免单独管理这些宏的麻烦。
在数据库窗口中的宏名称列表中将显示宏组名称。如果要指定宏组中的某个宏,应使用如下结构:【宏组名.宏名】。
⑷ 宏中的条件操作
有时用户可能希望仅仅在某些条件成立的情况下才在宏中执行某个或某些操作。宏中的条件可以达到这个目的。
2.创建AutoKeys宏
Autokeys宏通过按下指定给宏的一个键或一个键序触发。为AutoKeys宏设置的键击顺序称为宏的名字。例如:名为F5的宏将在按下F5键时运行。
命名AutoKeys宏时,使用符号&^&表达Ctrl键。下表列出了可用来运行AutoKeys宏的组合键的类型:
语法&&&&&&&&&&& 说明&&&&&&&&&&&&&&&&&&& 示例
&&&&&&&&&&&&&&&&&&&&&&&&
^number&&&&&&&& Ctrl+任一数字&&&&&&&&&& ^3
F*&&&&&&&&&&&&& 任一功能键&&&&&&&&&&&&& F5
^F*&&&&&&&&&&&& Ctrl+任一功能键&&&&&&&& ^F5
+F*&&&&&&&&&&&& Shift+任一功能键&&&&&&& &F5
&&&&&&&&&&&&&&&&&&&&&&&&
创建AutoKeys宏时,必须定义宏将执行的操作,如打开一个对象,最大化一个窗口或显示一条消息。另外还需要提供操作参数,宏在运行时需要这种参数,如要打开的数据库对象、要最大化的窗口或要在对话框中显示的消息的名称。
下面举例说明:
◆ 新建宏,显示宏名列,在宏名列中输入宏名&^1&,在操作列中选择操作。
◆ 选择操作OpenForm,设置相应的参数。
◆ 用同样的方法建立其它三个宏。
◆ 以AutoKeys为宏保存宏组。
&&& 这时只需按下Ctrl+1就会打开【供应商】窗体,Ctrl+2最大化该窗体,Ctrl+3最小化该窗体,Ctrl+4关闭该窗体。
3.创建条件宏
条件宏是满足一定条件后才运行宏。利用条件宏可以显示一些信息,如雇员输入了订单却忘记了输入雇员号,则可利用宏来提醒雇员输入遗漏的信息。或者进行数据的有效性检查。
要创建条件宏,需要向【宏】窗口添加【条件】列,单击【宏设计】工具栏上的【条件】按钮,并输入使条件起作用的宏的规则即可。如果设置的条件为真,宏就运行。如果设置的条件为假,就转到下一个操作。
下面举例说明:
◆ 新建宏,显示条件列,输入条件。选择操作和参数。
◆ 以名MoreThan1000保存宏,并关闭之。
◆ 在设计窗口打开&雇员销售明细金额窗体&,并在金额控件的属性中设置事件。
◆ 金额超过1000元时,将鼠标进入金额框再离开时,有如下提示:
4.创建事件宏
事件是在数据库中执行的操作,如单击鼠标、打开窗体或打印报表。可以创建只要某一事件发生就运行宏。例如在使用窗体时,可能需要在窗体中反复地查找记录,打印记录,然后前进到下一条记录。可以创建一个宏来自动地执行这些操作。
Access 2003 可识别大量的事件,但可用的事件并非一成不变,这取决于事件将要触发的对象类型。下表给出了几个常用的可指定给宏的事件。
事件&&&&&&&&&&&&&&&&&&&& 说明
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
OnOpen&&&&&&&&&&&&&&& 当一个对象被打开且第1条记录显示之前执行
OnCurrent&&&&&&&&&&&& 当对象的当前记录被选中时执行
OnClick&&&&&&&&&&&&&&& 当用户单击一个具体的对象时执行
OnClose&&&&&&&&&&&&&&& 当对象被关闭并从屏幕上清除时执行
OnDblClick&&&&&&&&&& 当用户双击一个具体对象时执行
OnActivable&&&&&&&&&& 当一个对象被激活时执行
OnDeactivate&&&&&&&& 当一个对象不再活动时执行
BeforeUpdate&&&&&&&& 在用更改后的数据更新记录之前执行
AfterUpdate&&&&&&&&&& 在用更改后的数据更新记录之后执行
&&&&&&&&&&&&&&&&&&&&&&&&&&&&
下面举例说明事件宏的创建。
三、运行宏
创建完一个宏后,就可以运行宏执行各个操作。当运行宏时,Access2003 会运行宏中的所有操作,直到宏结束。
可以直接运行宏,或者从其宏或事件过程中运行宏,也可以作为窗体、报表或控件中出现的事件响应运行宏。也可以创建自定义菜单命令或工具栏按钮来运行宏,将某个宏设定为组合键,或者在打开数据库时自动运行宏。
1.直接运行宏
如果希望直接运行宏,通过双击宏名、通过【工具】【宏】|【运行宏】、通过单击工具栏上的【执行】按钮等操作,可以直接运行宏。
2.在宏组中运行宏
要把宏作为窗体或报表中的事件属性设置,或作为RunMacro(运行宏)操作中的Macro Name(宏名)说明,可以用如下格式指定宏:
[宏组名.宏名]
3.从其他宏或VB程序中运行宏
如果要从其他的宏或VB过程中运行宏,请将RunMacro操作添加到相应的宏或过程中。
如果要将RunMacro操作添加到宏中,在宏的设计视图中,请在空白操作行选择RunMacro选项,并且将MacroName参数设置为相应的宏名即可。
如果要将RunMacro操作添加到VB过程中,请在过程中添加DoCmd对象的RunMacro方法,然后指定要运行的宏名即可。如语句:DoCmd.RunMacro &My Macro&。
下面看一下RunMacro操作。在下列三种情况下使用这个操作:
◆ 从另一个宏运行宏。
◆ 执行基于某个条件的宏。
◆ 将宏附加到一个自定义的菜单命令上。
RunMacro操作的参数如下:
操作参数&&&&&&&&&&&&& 描述
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
宏名&&&&&&&&&&&&&&&&&&&& 执行的宏的名称
重复次数&&&&&&&&&&&&& 宏执行的最大次数。空白为一次
重复表达式&&&&&&&&& 表达式结果为True(-1)或False(0)。如果为假,则宏停止运行。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
如果用户在【宏名】参数中设置宏组名,则会运行组中第一个宏。
4.从控件中运行宏
如果希望从窗体、报表或控件中运行宏,只需单击设计视图中的相应控件,在相应的属性对话框中选择【事件】选项卡的对应事件,然后在下拉列表框中选择当前数据库中的相应宏。这样在事件发生时,就会自动执行所设定的宏。
例如建立一个宏,执行操作&Quit&,将某一窗体中的命令按钮的单击事件设置为执行这个宏,则当在窗体中点击按钮时,将退出Access。
5.在菜单或工具栏中运行宏
可以将宏添加到菜单或工具栏中,从而在菜单或工具栏中运行宏。首先选择【视图】|【工具栏】|【自定义】命令,Access2003弹出一个【自定义】对话框。将其图标直接拖动到菜单或工具栏中即可。单击该宏的图标即可运行宏。
6.将一个或一组操作设定成快捷键
可以将一个操作或一组操作设置成特定的键或组合键。可以通过如下步骤来完成:
◆ 在数据库窗口中单击【对象】栏下的【宏】按钮。
◆ 单击工具栏中的【新建】按钮。
◆ 单击工具栏上的【宏名】按钮。
◆ 在【宏名】列中为一个操作或一组操作设定快捷键。
◆ 添加希望快捷键执行的操作或操作组。
◆ 保存宏。
保存宏后,以后每次打开数据库时,设定的快捷键都将有效。
此外还可以创建一个在第一次打开数据库时运行的特殊的宏:AutoExec宏。它可以执行诸如这样的操作:打开数据输入窗体、显示消息框提示用户输入、发出表示欢迎的声音等。一个数据库只能有一个名为AutoExec的宏。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:121413次
积分:2078
积分:2078
排名:第7139名
原创:83篇
转载:21篇
评论:23条
(1)(1)(1)(1)(1)(1)(1)(3)(14)(8)(1)(7)(8)(2)(6)(6)(31)(5)(3)(3)Access应用实例——图书借阅管理系统——所有资料文档均为本人悉心收集,全部是文..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Access应用实例——图书借阅管理系统
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口共有646位成员   人气指数 -   最新排名 -
【话题】怎么查询一个范围内的记录?
12:26:44 来自:dengzy 浏览数:76次
表TABEL有个“费用”字段,窗体FORM5有两个文本框TEXT0和TEXT1,想在两个文本框中输入一个下限金额,一个上限金额,在点击按钮,在一個子窗体中得到费用我所输入的金额范围内的所有记录,请问SQL中怎么写?
是不是这样:
from TABLE
where 费用 between && forms!form5!text0.value && and && forms!form5!text1.value &&
如果不是,请指出应该怎样写,重点是两个文本框的值在SQL中怎么去写??
hujingsheng回复于11日12点39分 
1.& 直接改字FORM的recordsource
VBScript code
Me.subform.Form.RecordSource = &select * from table1 where fd01=2&
2. 直接用filter
VBScript code
Me.subform.Form.Filter = &fd01=2&
Me.subform.Form.FilterOn = True
==== 思想重于技巧 ====
好心态回复于11日12点56分 
我连你到底是在查询中用,还是FORM的VBA中都不知道。
==== 思想重于技巧 ====
弯月亮回复于11日13点09分 
我是把一个子窗体的记录源设置成了那个查询,然后在一个按钮里写上me.子窗体.requery
wenjp0429回复于11日13点22分 
我还得要检查text0和 text1中是不是为空,要用到IIF(ISNULL),请问,怎样把这个包含到SQL中去?
wendyzl回复于11日13点35分 
以下摘自 Microsoft Access Help
Filter 属性
参阅应用于示例特性使用 Filter 属性可以在对窗体、报表 查询或表应用筛选时指定要显示的记录子集。String 型,可读/写。
expression.Filter
expression& & & 必需。返回“应用于”列表中的一个对象的表达式。
在 Microsoft Access 项目 (.adp) 中,如果要为服务器上的数据指定服务器筛选,请使用 ServerFilter 属性。
Filter 属性是一个字符串表达式,它包含了一个不带 WHERE 关键字的 WHERE 子句。例如下面的 Visual Basic 代码定义并应用筛选以只显示来自美国的顾客:
Me.Filter = &Country = 'USA'&
Me.FilterOn = True
可以使用表或窗体的属性表、宏或 Visual Basic 设置该属性。
也可以在“窗体”视图或“数据表”视图中设置该属性,方法是指向“记录”菜单上的“筛选”,然后单击子菜单中的一个命令。
注释& 设置 Filter 属性对 ADO Filter 属性无任何影响。
用 Filter 属性可保存一个筛选以便在日后应用它。筛选被保存在创建该筛选的对象中。在打开对象的时候将自动加载筛选,但不会自动应用筛选。
当新建对象时,该对象将从创建它的表或查询继承 RecordSource、Filter、OrderBy 和 OrderByOn 属性。
要将一个已保存的筛选应用于窗体、查询或表上,可单击工具栏上的“应用筛选”按钮或选择“记录”菜单上的“应用筛选/排序”命令,或者可在宏或 Visual Basic 中把 FilterOn 属性设置为 True。对于报表,可以通过在报表的属性表中把“开启筛选”属性设置为“是”来应用筛选。
“应用筛选”按钮指明了 Filter 和 FilterOn 属性的状态。除非有筛选要应用,否则该按钮是无效的。如果当前应用了一个现有的筛选,则“应用筛选”按钮是被按下的。
若要在打开窗体时自动应用筛选,请在窗体的 OnOpen 事件属性设置中指定一个使用 ApplyFilter 操作的宏或使用 DoCmd 对象的 ApplyFilter 方法的事件过程。
要删除筛选,可单击处于按下状态的“应用筛选”按钮,或单击“记录”菜单中的“取消筛选/排序”,或者使用 Visual Basic 将 FilterOn 属性设置为 False。
注释& 可以将筛选保存为查询,方法是在“按窗体筛选”窗口或“高级筛选/排序”窗口中单击“文件”菜单中的“另存为查询”命令。
当在窗体“设计”视图中设置 Filter 属性时,Microsoft Access 不验证 SQL 表达式的有效性。如果 SQL 表达式是无效的,则在应用筛选时会出现错误。
==== 思想重于技巧 ====
lovelygril回复于11日13点50分 
如果直接在查询中则
select * from [TABLE] where [费用] between forms!form5!text0& and& forms!form5!text1.value
==== 思想重于技巧 ====
我在西城回复于11日14点06分 
你用什么打开查询?
docmd.openquery ?
==== 思想重于技巧 ====
lunaluna回复于11日14点20分 
http://www.access911.net/csdn/FileDescription.asp?mdb=&id=24&mode=3
1. 删除了所有无关的表,查询,FORM, 我比较小心,怕中毒。
2. 更改了 FORM ERPInquirySub 的数据源 为表 [ERP基本信息表],所以原来的query也用不到了.
3. 修改了Text15的label为 &上限&
4. 修改了Combo2 的数据源为 &SELECT DISTINCT ERP基本信息表.所属公司 FROM ERP基本信息表; &, 并bind column, display column
5. 表中 insert 2 个 sap 的纪录,以测试 4.的修改
6. Command10_Click 的 code
==== 思想重于技巧 ====
pan1031回复于11日14点33分 
你直接改subform的datasource不就行了?
==== 思想重于技巧 ====
杜心宜回复于11日14点50分 
推荐你看一下这些帮助
Access VBA 参考下载
JET SQL HELP 下载
==== 思想重于技巧 ====
潇洒的狼回复于11日15点03分 
建议你直接用filter
在t1查询中删除所有的where
VBScript code
Private Sub Command13_Click()
Dim sFilter As String
sFilter = &&
If Combo2.Value && && Then
sFilter = &×÷ÒµµÄС×é³É¼¨±í.¿Î³ÌºÅ=& & Combo2.Value
If Combo6.Value && && Then
If sFilter = && Then
sFilter = &×÷ÒµµÄС×é³É¼¨±í.×÷ÒµºÅ=& & Combo6.Value
sFilter = sFilter & &AND ×÷ÒµµÄС×é³É¼¨±í.×÷ÒµºÅ=& & Combo6.Value
If Combo8.Value && && Then
If sFilter = && Then
sFilter = &×÷ÒµµÄС×é³É¼¨±í.×éºÅ=& & Combo8.Value
sFilter = sFilter & &AND ×÷ÒµµÄС×é³É¼¨±í.×éºÅ=& & Combo8.Value
Me.GroupGradeOfGroupTaskSub.Form.Filter = sFilter
Me.GroupGradeOfGroupTaskSub.Form.FilterOn = True
==== 思想重于技巧 ====
青青faye8322回复于11日15点17分 
你是在什么中调用?
如果是在本FORM的VBA中
sql = &select * from [TABLE] where [费用] between & & forms!form5!text0.value & & and & & forms!form5!text1.value
==== 思想重于技巧 ====
wangaiv回复于11日15点31分 
是在查询里面用的,我就是根据用户给定的值去查询,根据组合框的值查询已经解决了,是这样写的:
FROM ERP基本信息表
WHERE (ERP基本信息表.品牌) Like IIf(IsNull(Forms!ERPInquiry!Combo0),'*',Forms!ERPInquiry!Combo0);
现在,想根据一个范围来查询,不知道怎么改写上面的语句?
李子阳回复于11日15点45分 
你还是到群力来问吧,否则很难听懂你在说什么。
==== 思想重于技巧 ====
朱思坤回复于11日15点58分 
呵呵,谢谢LIUYANN老师,那个解除锁定的问题已经解决了。
这个问题还没解决。具体怎么用FILTER还是不太会,MDB文件已经上传 http://www.access911.net/csdn/filedescription.asp?mdb=&id=23&mode=3
Access的其他话题...
热门脚本语言:基本的宏操作。宏用起来方便简单
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Access编程-操作(宏)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 access 弹出窗体 的文章

 

随机推荐