Access代码Word文件下载.docx
- 文档编号:17958206
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:32.40KB
Access代码Word文件下载.docx
《Access代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《Access代码Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
,acViewPreview,,Me.Filter
7、去除窗体及子窗体的筛选及排序
跟“记录”菜单中的“取消筛选/排序”作用相同:
DoCmd.ShowAllRecords
8、数据更改后提醒是否保存
在窗体的更新前事件中(Form_BeforeUpdate):
IfNot(Cancel=(MsgBox("
数据已更改,是否保存?
"
vbOKCancel+vbQuestion)=vbCancel))ThenDoCmd.DoMenuItemacFormBar,acEditMenu,acUndo,,acMenuVer70
9、选定一个选项,自动把与选项相关信息辅助录入(即一拖几)
在选项的更改事件中,用Dlookup函数查找相关信息并辅值给当前记录:
供货商=DLookup("
公司名称"
"
供货商资料"
[供货商编号]='
&
Me!
[供货商编号]&
"
'
)
10、设置字段的默认值为当前表的最后一条记录的值(或序号加1)
在窗体的成为当前事件中,用Dlast函数查找最后记录相关值并辅值给字段的默认值:
成绩.DefaultValue="
DLast("
成绩"
Me.RecordSource)&
11、删除重复记录(字段)
表中要有自动编号字段(ID),可建立删除查询或执行RunSql语句(其中[]填写对应的表名、重复字段名、关键字段名):
Delete*FROM[表]WhereDCount("
[字段]"
"
[表]"
[字段]='
[字段]&
)>
1AND[ID]>
DLookUp("
[ID]"
)or[字段]IsNull;
12、班级成绩排名查询
可根据年级、班级和不同科目替换查询中的相应字段名:
Select*,[英语]+[数学]+[语文]AS总分,DCount("
*"
成绩表"
[年级]='
[年级]&
and([英语]+[数学]+[语文])>
[英语]+[数学]+[语文])+1AS年级名次FROM成绩表orDERBY成绩表.年级,[英语]+[数学]+[语文]DESC;
删除N天之前的备份
正 文:
FunctionShowFolderList(folderspec,d)'
DimaAsBoolean
Dimfso,f,f1,fc,s,dt
Setfso=CreateObject("
Scripting.FileSystemObject"
Setf=fso.GetFolder(folderspec)
Setfc=f.Files
ForEachf1Infc
dt=f1.DateCreated'
建日期和时间
dt=f1.DateLastAccessed'
上次访问日期和时间
dt=f1.DateLastModified'
上次修改日期和时间
IfDateDiff("
d"
dt,Now)>
dThen
s=s&
f1.name&
vbTab&
dt&
vbCrLf
f1.Delete
EndIf
Next
ShowFolderList="
下列文件被删除了("
Now&
):
vbCrLf&
s
Setfso=Nothing
EndFunction
sql语句
(一)词汇解释
摘 要:
sql语句
(一)词汇解释
DISTINCT
SELECT关键字支持用户查询数据表中指定字段的所有数据,但是这样有时就会不可避免的出现重复信息。
如果用户希望只查询那些具有不同记录值的信息的话,可以使用SQL语言的DISTINCT关键字。
语法格式如下:
SELECTDISTINCT"
column_name"
FROM"
table_name"
distinct的只显示一次重复出更的值。
不过这个值出现多少次只显示一次。
selectdistinct字段名1,字段名2from表格orderby字段名1
distinct字段名1意思是只显示一次字段名1显示的是第一次出现的。
最好和orderby结合使用。
可以提高效率。
注意,是结果集,如果你选了N个字段,当N个字段都相同时才会被视为相同,而只返加一个当然,如果N=1的话,情况就会比较明显此外,distinct会对返回的结果集进行排序所以会大大影响查询效率,大数据集时比较明显
orderbyiddesc是降序全称descend升序是ASC全称ascend
ORDERBY子句
按照递增或递减顺序在指定字段中对查询的结果记录进行排序。
WHERE
除了选择具有不同记录值的记录之外,有时我们可能还会需要根据某些条件对数据库中的数据进行查询。
例如,我们可能需要查询Store_Information数据表中销售额超过1000美圆的商店。
为此,我们可以使用SQL语言的WHERE关键字设定查询条件。
SELECT"
WHERE"
condition"
由此,我们可以使用如下命令查询销售额超过1000美圆的商店信息:
SELECTstore_nameFROMStore_InformationWHERESales>
1000
运算函数
现在,我们已经了解到在使用SQL语言进行数据库查询操作时可以通过对数值的判断设定灵活的查询条件。
为了增强对运算的支持能力,SQL提供了众多实用的运算函数供广大用户使用。
例如,我们可以直接在SQL命令中调用SUM或AVG这两个分别用于计算总数和平均数的函数。
functiontype"
("
)FROM"
如果我们希望查询Store_Information数据表中所有商店的总销售额的话,可以使用如下命令:
SELECTSUM(Sales)FROMStore_Information
COUNT
除了SUM和AVG函数之外,COUNT函数是SQL语言中另一个较为常用的运算函数。
COUNT函数可以用来计算数据表中指定字段所包含的记录数目。
语法格式为:
SELECTCOUNT("
例如,如果我们希望查询Store_Information数据表中的有关商店的记录条数时,可以使用如下命令:
SELECTCOUNT(store_name)FROMStore_Information
COUNT函数可以和DISTINCT关键字一起使用从而可以查询数据表中指定字段中所有具有不同记录值的记录数目。
例如,如果我们希望查询Store_Information数据表中不同商店的数目时,可以使用如下命令:
SELECTCOUNT(DISTINCTstore_name)FROMStore_Information
GROUPBY
下面我们来进一步看一下SQL语言中的集合函数。
使用SUM函数计算所有商店的销售总额,如果我们希望计算每一家商店各自的总销售额时该怎么办呢?
要实现这一目的我们需要做两件事:
首先,我们需要查询商店名称和销售额两个字段;
然后,我们使用SQL语言的GROUPBY命令将销售额按照不同的商店进行分组,从而计算出不同商店的销售总额。
GROUPBY命令的语法格式为:
column_name1"
SUM("
column_name2"
GROUPBY"
我们可以使用如下命令实现上述查询目的:
SELECTstore_name,SUM(Sales)FROMStore_InformationGROUPBYstore_name
GROUPBY关键字一般应用于同时查询多个字段并对字段进行算术运算的SQL命令中。
HAVING
用户在使用SQL语言的过程中可能希望解决的另一个问题就是对由sum或其它集合函数运算结果的输出进行限制。
例如,我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息,这时我们就需要使用HAVING从句。
HAVING(arithematicfunctioncondition)
(GROUPBY从句可选)
由此,我们可以使用如下命令实现上述查询目的:
SELECTstore_name,SUM(sales)FROMStore_InformationGROUPBYstore_name
HAVINGSUM(sales)>
1500
查询结果显示为:
store_nameSUM(Sales)LosAngeles$1800
小注:
SQL语言中设定集合函数的查询条件时使用HAVING从句而不是WHERE从句。
通常情况下,HAVING从句被放置在SQL命令的结尾处。
ALIAS
下面,我们重点介绍一下如何在SQL命令中设定别名。
SQL语言中一般使用两种类型的别名,分别为字段别名和数据表别名。
简单的说,使用字段别名可以帮助我们有效的组织查询的输出结果。
例如,上文所列举的多个实例中,当我们计算商店销售总额时,显示结果中就会出现SUM(sales)。
虽然SUM(sales)并不会对我们理解查询结果带来不便,但是如果我们需要在查询中使用多项复杂运算时,显示结果就不会这么直观了。
如果这时我们使用字段别名就会极大的提高查询结果的可读性。
对于数据表别名,我们可以通过将别名直接放置在FROM从句中数据表名称的后面设定。
数据表别名在我们下面将要讲述的连接多个数据表进行查询的操作中极为有用。
字段和数据表别名的语法格式如下:
table_alias"
."
column_alias"
即别名都直接放置在各自对应名称的后面,中间用空格分开。
以Store_Information数据表为例,我们可以在GROUPBY一节中所使用的SQL命令中设置如下字段和数据表别名:
SELECTA1.store_nameStore,SUM(Sales)"
TotalSales"
FROMStore_InformationA1GROUPBYA1.store_name
StoreTotalSales
LosAngeles$1800
SanDiego$250
Boston$700
sql语句
(二)innerjoin
INNERJOIN
组合两个表中的记录,只要在公共字段之中有相符的值。
FROMtable1INNERJOINtable2ONtable1.field1compoprtable2.field2
INNERJOIN运算可分为以下几个部分:
部分
说明
table1,table2
记录被组合的表的名称。
field1,field2
被联接的字段的名称。
若它们不是由数字构成的,则这些字段必须为相同的数据类型并包含同类数据,但它们无须具有相同的名称。
compopr
任何的关系比较运算子:
=,"
<
>
或"
可以在FROM子句中使用INNERJOIN运算。
.这是最普通的联接类型。
只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录。
可以使用INNERJOIN与部门表及员工表选择每一个部门中的全部员工。
反之,可以使用LEFTJOIN或RIGHTJOIN运算创建outerjoin,从而选择所有部门(即使有些并没有员工)或所有员工(即使有些尚未分配到部门)。
若试图联接包含Memo或OLEObject数据的字段,会导致错误。
可以联接任何两个相同类型的数值字段。
例如,可以联接AutoNumber和Long字段,因为它们类型相似。
但不能联接Single和Double类型的字段。
下列示例显示如何在类标识符字段联接类表及产品表:
SELECTCategoryName,ProductName
FROMCategoriesINNERJOINProducts
ONCategories.CategoryID=Products.CategoryID;
在上面的示例中,类标识符是已被联接的字段,但是它并不包含在查询输出中,因它并非被包含在SELECT语句之中。
在这个示例中,若要包含联接字段,将字段名包含在SELECT语句中,Categories.CategoryID.
也可以使用下列语法,在一个JOIN语句中链接多个ON子句:
SELECTfields
FROMtable1INNERJOINtable2
ONtable1.field1compoprtable2.field1AND
ONtable1.field2compoprtable2.field2)OR
ONtable1.field3compoprtable2.field3)];
也可以使用下列语法,嵌套JOIN语句:
FROMtable1INNERJOIN
(table2INNERJOIN[(]table3
[INNERJOIN[(]tablex[INNERJOIN...)]
ONtable3.field3compoprtablex.fieldx)]
ONtable2.field2compoprtable3.field3)
ONtable1.field1compoprtable2.field2;
在一个INNERJOIN之中,可以嵌套LEFTJOIN或RIGHTJOIN,但是在LEFTJOIN或RIGHTJOIN中不能嵌套INNERJOIN。
有关INNERJOIN的用法,现更加详细地说明如下:
多表联接建立记录集是十分有用的,因为某些情况下,我们需要把数字数据类型显示为相应的文本名称,这就碰到了多表联接建立记录集的问题。
比如作一个会员注册系统,共有五个表,会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wedlock。
假如想把会员注册信息全部显示出来,肯定要将这四个表连起来,否则大家看到的某些会员信息可能只是数据编号。
以会员类别表来说,在其数据表中,1代表普通会员,2代表高级会员,3代表终身会员,在显示时,假如不将会员类别表与会员具体数据表相关联,那么假如我们现在看到的是一名普通会员的注册信息,我们只能看到其类别为1,而谁又会知道1代表的是普通会员呢?
所以要将会员类别表与会员具体数据表相关联,关联后,1就显示为普通会员,2就显示为高级会员,3就显示为终身会员,这样多好?
同理,其它两个表也要与会员具体数据表相关联才能把数据编号显示为相应的名称。
前天制作网站后台时碰到此问题,在面包论坛、狂迷俱乐部、蓝色理想、和5D多媒体论坛发了贴子求救,都没有获得答案,只好自己研究,花了两天时间终于成功,现将其写成教程供大家分享,希望大家少走弯路。
本教程是把五个表联在一起,假如愿意,您可以将更多的表联在一起,方法大同小异啦~
步骤一:
用Access软件建立一个名为Member的数据库,在其中建五个表,分别为:
会员信息数据表member、会员身份表MemberIdentity、会员权限表MemberLevel、会员类别表MemberSort和会员婚姻状况表Wedlock。
●会员信息数据表member:
MemberID:
自动编号,主键(ID号)
MemberSort:
数字(会员类别)
MemberName:
文本,会员姓名
Password:
文本(会员密码)
MemberLevel:
数字(会员权限)
MemberIdentity:
数字(会员身份)
Wedlock:
数字(婚姻状况)
MemberQQ:
文本(QQ号码)
MemberEmail:
文本(会员邮箱)
MemberDate:
日期/时间(会员注册日期)
●会员身份表MemberIdentity:
IdentityName:
文本(会员身份名称)
●会员权限表MemberLevel:
LevelName:
文本(会员权限名称)
●会员类别表MemberSort:
SortName:
文本(会员类别名称)
●会员婚姻状况表Wedlock
WedlockName:
文本(会员婚姻状况类别)
说明:
五个表建好后,您可以自行设置您想要的类别,如会员权限,您可以设置两个类别--“未付费会员”和“已付费会员”,编号分别为“1”、“2”,如您设置了三个选项,那么第三个选项的编号当然就是“3”了。
下面我们所要作的工作就是把“1”、“2”之类的编号显示为“未付费会员”和“已付费会员”,否则,大家谁会知道“1”代表的是“未付费会员”,“2”代表的是“已付费会员”?
步骤二:
建DSN数据源,建记录集
●运行DreamweaverMX软件,在会员注册信息显示页面建一个名为ConnMember(您也可以起其它的名称)的DSN数据源。
●点击服务器行为面板中的“绑定”,建一个名为MemberShow的数据集,“连接”选择ConnMember,“表格”选择Member,“列”全选,“排序”选择MemberDate,降序。
点击“高级”按钮,修改SQL框中自动生成的代码:
原代码为:
Select*
FROMMember
ORDERBYMemberDateDESC
将代码修改为:
FROM(((MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort)INNERJOINMemberLevelONMember.MemberLevel=MemberLevel.MemberLevel)INNERJOINMemberIdentityONMember.MemberIdentity=MemberIdentity.MemberIdentity)INNERJOINWedlockONMember.Wedlock=Wedlock.Wedlock
修改完代码后,点击“确定”,大功告成!
现在,您可以打开记录集看一下,五个表中的字段全部集成在MemberShow记录集中,您只要将相应的字段绑定在该字段想显示的单元格中即可。
这下好了,所有的数字编号全部变成了相应的名称,如会员权限,不再是“1”和“2”的数字形式了,而是变成了相应的名称“未付费会员”和“已付费会员”。
其它的数字编号也变成了显示的文本名称,是不是很开心呢?
注重事项:
●在输入字母过程中,一定要用英文半角标点符号,单词之间留一半角空格;
●在建立数据表时,假如一个表与多个表联接,那么这一个表中的字段必须是“数字”数据类型,而多个表中的相同字段必须是主键,而且是“自动编号”数据类型。
否则,很难联接成功。
●代码嵌套快速方法:
如,想连接五个表,则只要在连接四个表的代码上加一个前后括号(前括号加在FROM的后面,后括号加在代码的末尾即可),然后在后括号后面继续添加“INNERJOIN表名XON表1.字段号=表X.字段号”代码即可,这样就可以无限联接数据表了:
语法格式:
其实INNERJOIN……ON的语法格式可以概括为:
FROM(((表1INNERJOIN表2ON表1.字段号=表2.字段号)INNERJOIN表3ON表1.字段号=表3.字段号)INNERJOIN表4ONMember.字段号=表4.字段号)INNERJOIN表XONMember.字段号=表X.字段号
您只要套用该格式就可以了。
现成格式范例:
虽然我说得已经比较明白了,但为照顾初学者,我还是以本会员注册系统为例,提供一些现成的语法格式范例,大家只要修改其中的数据表名称和字段名称即可。
连接两个数据表的用法:
FROMMemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort
语法格式可以概括为:
FROM表1INNERJOIN表2ON表1.字段号=表2.字段号
连接三个数据表的用法:
FROM(MemberINNERJOINMemberSortONMember.MemberSort=MemberSort.MemberSort)INNERJOINMemberLevel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 代码