ACCSEE重点笔记.docx
- 文档编号:23866872
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:14
- 大小:24.71KB
ACCSEE重点笔记.docx
《ACCSEE重点笔记.docx》由会员分享,可在线阅读,更多相关《ACCSEE重点笔记.docx(14页珍藏版)》请在冰豆网上搜索。
ACCSEE重点笔记
第一、
维护表
随着数据库的不断使用,也需要增加一些内容或删除一些内容,这样表结构和表内容都会发生变化。
为了使数据库中表结构更合理,内容更新、使用更有效,需要经常对表进行维护。
打开和关闭表
表建立好以后,细果需要,可以对其进行修改。
例如,修改表的结构、编辑表中的数据,浏览表中的记录等,在进行这些操作之前,要打开相应的表;完成操作后,要关闭表。
1.打开表
在Access中,可以在“数据表”视图中打开表,也可以在“设计”视图中打开表。
例2.21在“数据表”视图中打开“学生”表,操作步骤如下:
(1)在“数据库”窗口中,单击“表”对象。
(2)单击“学生”表名称,然后单击“打开”按钮;或直接双击要打开表的名称。
此时,Access打开所需的表。
在“数据表”视图下打开表以后,可以在该表中输入新的数据、修改已有的数据、删除不需要的数据,添加字段、删除字段或修改字段。
如果要修改字段的数据类型或属性,应当使用工具栏上的“视图”按钮切换到“设计”视图,或在“设计”视图中打开表。
在“设计”视图中打开“学生”表,操作步骤如下:
(1)在“数据库”窗口中,单击“表”对象。
(2)单击“学生”表,然后单击“设计”按钮。
此时,也可以单击工具栏上的“视图”按钮切换到“数据表”视图。
2.关闭表
表的操作结束后,应该将其关闭。
无论表是处于“设计”视图状态,还是处于“数据表”视图状态,单击“文件”菜单中的“关闭”命令或单击窗口的“关闭窗口”按钮都可以将打开的表关闭。
在关闭表时,如果曾对表的结构或布局进行过修改,会显示一个提示框,询问用户是否保存所做的修改。
单击“是”按钮保存所做的修改;单击“否”按钮放弃所做的修改;单击“取消”按钮则取消关闭操作。
第二、
修改表结构
修改表结构的操作主要包括增加字段、删除宇段、修改字段、重新设置主键等。
1.添加字段
在表中添加一个新字段不会影响其它字段和现有数据。
但利用该表建立的査询、窗体或报表,新字段不会自动加入,需要手工添加上去。
可以使用两种方法添加字段。
第一种是用表“设计”视图打开需要添加字段的表,然后将光标移动到要插入新字段的位置,单击工具栏上的“插入行”按纽,在新行的“字段名称”列中输入新字段名称,确定新字段数据类型。
第二种是用“数据表”视图打开需要添加字段的表,然后选择“插入”菜单中的“列”命令,再双击新列中的字段名“字段1”,为该列输入唯一的名称。
2.修改字段
修改字段包括修改字段的名称、数据类型、说明、属性等。
在“数据表”视图中,只能修改字段名,如果要改变其数据类型或定义字段的属性,需要切换到“设计”视图进行操作。
具体方法是用表“设计”视图打开需要修改字段的表,如果要修改某字段名称,在该字段的“字段名称”列中,单击鼠标左键,然后修改字段名称;如果要修改某字段数据类型,单击该字段“数据类型”列右侧向下箭头按钮,然后从打开的下拉列表中选择需要的数据类型。
在Access中,“数据表”视图中字段列顶部的名称可以与字段的名称不相同。
因为“数据表”视图中字段列顶部显示的名称来自于该字段的“标题”属性。
如果“标题”属性中为空白,“数据表”视图中字段列顶部将显示对应字段的名称。
如果“标题”属性中输入了新名称,该新名称将显示在“数据表”视图中相应字段列的顶部。
3.删除字段
与添加字段操作相似,删除字段也有两种方法。
第一种是用表“设计”视图打开需要删除字段的表,然后将光标移到要删除字段行上;如果要选择一组连续的字段,可将鼠标指针拖过所选字段的字段选定器;如果要选择一组不连续的字段,可先选中要删除的某一个字段的字段选定器,然后按下Ctrl键不放,再单击每一个要删除字段的字段选定器,最后单击工具栏上的“删除行”按钮。
第二种是用“数据表”视图打开需要删除字段的表,选中要删除的字段列,然后选择“编辑”菜单中“删除列”命令。
4.重新设置主键
如果已定义的主键不合适,可以重新定义。
重新定义主键需要先删除已定义的主键,然后再定义新的主键,具体橾作歩骤如下:
(1)使用“设计”视图打开需要重新定义主键的表。
(2)单击主键所在行字段选定器,然后单击工具栏上的“主键”按钮。
完成此步操作后,系统将取消以前设置的主键。
(3)单击要设为主键的字段选定器,然后单击工具拦上的“主键”按钮,这时主键字段选定器上显示一个“主键”图标,表明该字段是主键字段。
第三、
筛选记录
使用数据库表时,经常需要从众多的数据中挑选出一部分满足某种条件的数据进行处理。
例如,在“教师”表中,不应包含离退休教师,需要从教师表中删除。
又如,评奖学金时,需要从“选课成绩”表中找出符合条件的学生。
Access提供了4种筛选记录的方法,分别是按选定内容筛选、按窗体筛选、按筛选目标筛选以及高级筛选。
“按选定内容筛选”是一种最简单的筛选方法,使用它可以很容易地找到包含某字段值的记录;“按窗体筛选”是一种快速的筛选方法,使用它不用浏览整个表中的记录,还可以同时对两个以上字段值进行筛选;“按筛选目标筛选”是一种较灵活的方法,根据输入的筛选条件进行筛选;“高级筛选”可进行复杂的筛选,挑选出符合多重条件的记录。
经过筛选后的表,只显示满足条件的记录,而那些不满足条件的记录将被隐藏起来。
1.按选定内容筛选
例2.34在“学生”表中筛选出来自“湖北武汉”的学生。
操作歩骤如下:
(1)用“数据表”视图打开“学生”表,单击“简历”字段列任一行。
(2)执行“编辑”菜单中的“查找”命令,并在“查找内容”框中输入“湖北武汉”,然后单击“查找下一个”按钮。
也可以直接在表中“简历”字段列中找到该值并选中。
(3)单击工具栏上的“按选定内容筛选”按钮。
这时,Access将根据所选的内容筛选出相应的记录。
使用“按选定内容筛选”,首先要在表中找到一个在筛选产生的记录中必须包含的值。
如果这个值不容易找,最好不使用这种方法。
2.按窗体筛选
按窗体筛选记录时,Access将数据表变成一个记录,并且每个字段是一个下拉列表,用户可以从每个下拉列表中选取一个值作为筛选的内容。
如果选择两个以上的值,还可以通过窗体底部的“或”标签来确定两个字段值之间的关系。
例2.35将“学生”表中男生团员筛选出来。
操作步骤如下:
(1)用“数据表”视图打开“学生”表。
单击工具栏上的“按窗体筛选”按钮,切换到“按窗体筛选”窗口。
(2)单击“性别”字段,并单击右侧向下箭头按钮,从下拉列表中选择“男”,单击“团员否”字段中的复选框。
(3)单击工具栏上的“应用筛选”按钮执行筛选。
3.按筛选目标筛选
“按筛选目标筛选”的方法是在“筛选目标”框中输入筛选条件来査找含有该指定值或表达式值的所有记录。
例2.36在“选课成绩”表中筛选60分以下的学生。
操作步骤如下:
(1)用“数据表”视图打开“学生”表。
(2)将鼠标放在“成绩”字段列的任一位置,然后单击鼠标右键,打开快捷菜单。
(3)在“筛选目录”框中输入“<60”。
按Enter键。
这样,便可获所需的记录。
4.高级筛选
前画介绍的3种方法是筛选记录中最容易的方法,筛选的条件单一,操作非常简单。
但在实际应用中,常常涉及比较复杂的筛选条件。
例如,找出1992年参加工作的男教师。
此时使用“筛选”窗口,可以更容易地实现。
使用“筛选”窗口不仅可以筛选出满足复杂条件的记录,还可以对筛选的结果进行排序。
例2.37査找1992年参加工作的男教师,并按“系别”升序徘序。
具体操作如下:
(1)打开“教师”表。
单击“记录”菜单中的“筛选”命令,然后从其级联菜单中选择“高级筛选/排序”命令,打开“筛选”窗口。
(2)单击设计风格中第1列“字段”行,并单击右侧的向下箭头按钮,从打开的列表中选择“性别”字段,然后用同样的方法在第2列的“字段”行上选择“工作时间”字段,在第3列的“字段”行上选择“系别”字段。
(3)在“性别”的“条件”单元格中输入筛选条件“男”,在“工作时间”的“条件”单元格中输入条件“Between#1992-01-01#And#1992-12-31#”。
条件的书写方法,将在后面的章节中详细介绍。
(4)单击“系别”的“排序”单元格,单击右侧向下箭头按钮,从打开的列表中选择“升序”。
(5)单击工具栏上的“应用筛选”按钮执行筛选。
第四、
排序记录
一般情况下,在向表输入数据时,人们不会有意安排输入数据的先后顺序,而是只考虑输入的方便性,按照数据到来的先后顺序输入。
例如,在登记学生选课成绩时,哪一个学生的成绩先出来,就先输入哪一个,这符合实际情况和习惯。
但若要从这些杂乱的数据中查找需要的数据就不方便了。
为了提高査找效率,需要重新整理数据,对此最有效的方法是对数据进行排序。
1.排序规则
排序是根据当前表中的一个或多个字段的值对整个表中的所有记录进行重新排列。
排序时可按升序,也可按降序。
排序记录时,不同的字段类型,排序规则有所不同,具体规则如下:
(1)英文按字母顺序排序,大、小写视为相同,升序时按A到Z排列,降序时按Z到A排列。
(2)中文按拼音字母的顺序排序,升序时按A到Z排列,降序时按Z到A排列。
(3)数字按数字的大小排序,升序时从小到大排列,降序吋从大到小排列。
(4)日期和时间字段,按日期的先后顺序排序,升序时按从前向后的顺序排列,降序时按从后向前的顺序排列。
排序时,要注意以下几点:
(1)对于文本型的字段,如果它的取值有数字,那么Access将数字视为字符串。
因此,排序时是按照ASCII码值的大小排列,而不是按照数值本身的大小排列。
如果希望按其数值大小排列,则应在较短的数字前面加零。
例如,希望文本字符串“5”、“6”、“12”按升序排列,如果直接排列,那么排序的结果将是“12”、“5”、“6”,这是因为“1”的ASCII码小于“5”的ASCII码。
要想实现所需要的升序顺序,应将3个字符串改为“05”、“06”、“12”。
(2)按升序排列字段时,如果字段的值为空值,则将包含空值的记录排列在列表中的第1条。
(3)数据类型为备注、超级链接或OLE对象的字段不能排序。
(4)排序后,排序次序将与表一起保存。
2.按一个字段排序
按一个字段排序记录,可以在“数据表”视图中进行。
例2.31在“学生”表中,按“学生编号”升序排列。
操作歩骤如下:
(1)用“数据表”视图打开“学生”表,单击“学生编号”字段所在的列。
(2)单击工具栏中的“升序”按钮。
执行上述操作步骤后,就可以改变表中原有的排列次序,而变为新的次序。
保存表时,将同时保存排序结果。
3.按多个字段排序
在Access中,不仅可以按一个字段排序记录,也可以按多个字段排序记录。
按多个字段进行排序时,首先根据第一个字段按照指定的顺序进行排序,当第一个字段具有相同值时,再按照第二个字段进行排序,以此类推,直到按全部指定的字段排好序为止。
按多个字段排序记录的方法有两种,一种是使用“数据表”视图实现排序,另一种是使用“筛选”窗口来完成排序。
例2.32在“学生”表中按“性别”和“年龄”两个字段升序排序。
使用“数据表”视图进行排序的操作歩骤如下:
(1)用“数据表”视图打开“学生”表。
选择用于排序的“性别”和“年龄”两个字段的字段选定器。
(2)单击工具栏中的“升序”按钮。
从结果可以看出,Access先按“性别”排序,在性别相同的情况下再按“年龄”从小到大排序。
因此,按多个字段进行排序,必须注意字段的先后顺序。
若要取消对记录的排序,则将鼠标指向记录内容后单击鼠标右键,然后从打开的快捷菜单中选择“取消筛选排序”命令即可。
使用“数据表“视图按两个字段排序虽然简单,但它只能使所有字段都按同一种次序排序,而且这些字段必须相邻,如果希望两个字段按不同的次序排序,或者按两个不相邻的字段排序,就必须使用“筛选”窗口。
例2.33在“学生”表中先按“性别”升序排列,再按“入校日期”降序排列。
操作步骤如下:
(1)用“数据表”视图打开“学生”表。
单击“记录”菜单中的“筛选”命令,然后从级联菜单中选择“高级筛选/排序”命令,打开“筛选”窗口。
“筛选”窗口分为上、下两部分。
上半部分显示了被打开表的字段列表。
下半部分是设计网格,用来指定排序字段,排序方式和排序条件。
(2)用鼠标单击设计网格中第1列字段行右侧的向下箭头按钮,从打开的列表中选择“性别”字段,然后用同样的方法在第2列的字段行上选择“入校日期”字段。
(3)单击“性别”的“排序”单元格,单击右侧向下箭头按钮,并从打开的列表中选择“升序”;使用同样的方法在“入校日期”的“排序”单元格中选择“降序”
(4)单击工具栏上的“应用筛选”按钮,这时Access会按上面的设置排序“学生”表中的所有记录。
在指定排序次序以后,单击“记录”菜单中的“取消筛选/排序”命令,可以取消所设置的排序顺序
第五、
替换数据
在操作数库表时,如果要修改多处相同的数据,可以使用Access的替换功能,自动将査找到的数据更新为新数据。
1.替换指定内容
在Access中,通过使用“査找和替换”对话框可以在指定的范围内将指定查找内容的所有记录或某些记录替换为新的内容。
例2.30査找“教师”表中“政治面目”为“团员”的所有记录,并将其值改为“党员”。
操作步骤如下:
(1)用“数据表”视图打开“教师”表,单击“政治面目”字段选定器。
(2)单击“编辑”菜单中的“替换”命令,打开“査找和替换”对话框。
(3)在“査找内容”框中输入“团员”,然后在“替换为”框中输入“党员”,在“査找范围”框中确保选中当前字段,在“匹配”框中,确保选中“整个字段”。
(4)如果一次替换一个,单击“査找下一个”按钮,找到后,单击“替换”按钮。
如果不替换当前找到的内容,则继续单击“査找下一个”按钮。
如果要一次替换出现的全部指定内容,则单击“全部替换”按钮。
这里单击“全部替换”按钮,这时屏幕将显示一个提示框,提示进行替换操作后将无法恢复,询问是否要完成替换操作。
(5)单击“是”按钮,进行替换操作。
2.更改默认设置
在进行查找和替换操作时,有时希望以全字匹配方式搜索当前字段;有时则希望搜索所有字段,并且只需符合字段的任一部分即可;而有时则要搜索与当前字段起始字符匹配的数据,这时可以通过更改系统默认设置来实现。
更改系统默认设置的具体操作步骤如下:
(1)在“数据库”窗口中,单击“工具”菜单中的“选项”命令,打开“选项”对话框。
(2)单击“编辑/査找”选项卡。
在“默认査找/替换方式”选项组中,单击所需的单选按钮。
其中,选择“快速搜索”将以全字匹配方式搜索当前字段。
选择“常规搜索”将搜索所有字段,并且只需符合字段的任一部分即可。
选择“与字段起始处匹配的搜索”则搜索当前字段并且与字段起始字符匹配。
(4)单击“确定”按钮。
第六、
后台数据库用是Access,客户用了一年后说打开界面非常慢,查看了数据库后发现数据表中的记录已有五万多条,自己试过将记录复制到10万条,打开界面非常慢,翻页也是同样的问题,我采用的方式是每页装入20条记录,循环写在表格中显示出来,再定四个翻页键用来查看数据,但问题是虽然是每次装入页面的记录只有二十条,但每次要打开记录集时还是必须一次性装入所有的记录,所以才慢。
解决方法一:
1.设置一个自增长字段.并且该字段为INDEX.
2.由于是ACCESS,所以,只能是前台分页.自增长字段目的,就是为了实现分页功能.
1>记录用户前页的最后一个自增值,例如M.
2>下一页,取下一页的开始值.M+1,结束值:
M+1+1.5*PAGESIZE(注:
由于数据库会有增删操作,故应该取页大小应该有一个系数,你可以根据情况自定一个1大的系数.
3>前台循环取RS的前PAGESIZE条,写到一个新的RS中,并返回.
注:
新的RS是一个无连接的RS.
解决方法二:
十万条记录不是Access数据库的极限。
何况你的方法不是真正意义上的分页(应当利用PageSize和AbsolutePage属性)。
VBScriptcode
Setrs=NewADODB.Recordsetrs.CursorLocation=adUseClientrs.PageSize=20rs.Open"Select*From客户",iConc,adOpenKeyset,adLockOptimisticlngPages=rs.PageCountlngCurrentPage=1
此时打开的记录集只有20条记录。
翻页时:
VBScriptcode
IflngCurrentPage 第七、 问题: 连续或者单个窗体,如何打印当前显示的记录? 当前窗体还有对应的子窗体,也要一起打印出来 我在一个窗体里有一个单号,大子窗体里有几组数据,把全国计算机等级考试站点加入收藏夹我的报表是一组数据一页,请问如何实现按一下打印,能够只打印当前单号的数据报表? 回答: 这个问题太简单,我就不另外做说明了,请去看罗斯文示例数据库的“订单”窗体上“打印发货单”按钮的单击事件的代码 Sub打印发货单_Click() '这段代码由“命令按钮向导”创建。 OnErrorGoToErr_PrintInvoice_Click DimstrDocNameAsString strDocName="发货单" '打印“发货单”报表,使用“发货单筛选”查询打印当前订单的发货单。 DoCmd.OpenReportstrDocName,acViewNormal,"发货单筛选" Exit_PrintInvoice_Click: ExitSub Err_PrintInvoice_Click: '如果用户取消操作,不显示错误消息。 ConstconErrDoCmdCancelled=2501 If(Err=conErrDoCmdCancelled)Then ResumeExit_PrintInvoice_Click Else MsgBoxErr.Description ResumeExit_PrintInvoice_Click EndIf EndSub 这里的DoCmd.OpenReportstrDocName,acViewNormal,"发货单筛选"的"发货单筛选"参数是一个查询的名称,该查询代码如下: SELECT发货单.* 第八、 在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的? 本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法! 1列出表中的重复记录 (sameoda) SELECT[2].[地级市],Count(*)AS记录数FROM2GROUPBY[2].[地级市]HAVINGcount(*)>1ORDERBY[地级市]; 地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502 2以下是除去相同记录的过程 1)列出表中的所有重复记录 (表2中重复记录) SELECT2.*FROM2RIGHTJOINsameodaON[2].[地级市]=[sameoda].[地级市]; ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨 2)从重复记录中找到唯一的一条记录 minbihanhao SELECT2.*FROM2LEFTJOIN表2中重复记录ON[2].[ID]=[表2中重复记录].[ID]WHERE[表把全国计算机等级考试站点加入收藏夹2中重复记录].[id]IsNull; 地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355 3)显示唯一记录的全部信息 allsame1 SELECT2.*FROM2LEFTJOINminbihanhaoON([2].[地级市]=[minbihanhao].[地级市])AND([2].[id]=[minbihanhao].[id])WHERE[minbihanhao].[地级市]IsNotNullORDERBY[2].[id]; 4)在原表中除去所有相同的记录 dropsame2 SELECT2.*FROM2LEFTJOIN表2中重复记录ON[2].[ID]=[表2中重复记录].[ID]WHERE[表2中重复记录].[id]IsNull; 5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息 表2除去重复记录 SELECT*FROMdropsame2UNIONselect*fromallsame1; 第九、 在Access编程中,经常会需要获取程序所在的目录及全名,下列的各种方法可实现这个功能。 不过,需注意CurrentProject及CodeProject不适合Access97及以前的版本。 另外,需注意CurrentProject及CodeProject的区别 一般情况下,如果你的MDB或ADP只使用一个文件,两者指同一个对象。 但如果你的MDB引用了另一个MDE文件。 且这段代码是在MDE里执行的话,则currentproject指你的第一个MDB,codeproject指的是你引用的MDE文件。 这种特性用在多模块,通用模块开方中非常好,我将其用于企业管理系统的开发当中,这样,可使用多个MDE文件来分开实现不同的功能,而各个MDE又可组合成一个强大的系统(如ERP)。 有关详细的MDE相互调用及如果跨MDE、平级MDE、上下级MDE相互调用窗体及报表的方法,可发邮件给我 CurrentProject.FullName
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ACCSEE 重点 笔记