我建议各位读者朋友,一定要熟练Access这款软件的常用操作,这将是我们在学习ASP中必要的准备工作,因为在小型Web项目开发中,Access几乎是唯一的数据库选择。
在前面的描述中我已经说过了,Access是一款轻量级的数据库应用软件,因此他的使用也是特别方便的。
我想,你一定使用过微软的Office家族的很多款成员软件,例如Word等,这些软件使用起来是不是非常简单呢,其实,Access的使用和他们一样简单。
Access中,一个文件就代表了一个数据库,因此,如果新建一个数据库,那么我们要做的就是新建一个Access文件。
新建Access文件有两种方法,第一种是在开始菜单中打开Access软件,然后点击Access的菜单栏中的“文件”→“新建”选项,这时在Access的窗口右部将出现新建文件的选项,如图1.15所示。
图1.15
这里我们选择“空数据库”,在选择完毕后,将弹出保存文件的窗口要我们选择文件的保存路径,此时选择一个路径保存(为了统一起见,这里我们将其命名为E:\示例源码\chapter1\book.mdb),这样就在所选择的路径下建立了一个Access数据库文件。可能你已经注意到了,与Word等软件不同,Access数据库文件在建立时就强制要求保存了,这与数据库的特性有关,因为数据库将忠实记录对于数据的操作,因此保存文件到硬盘后再处理相比在内存中处理总是一个不错的方法。
另外一种方便的建立数据库的方法是在要保存数据库文件的文件夹中点击右键,在右键菜单的“新建”选项中选择“Microsoft Office Access 应用程序”(如图1.16所示),这时将在当前目录下建立Access数据库文件。
图1.16
在建立完毕数据库文件后,我们就可以打开刚刚建立的数据库文件book.mdb,这时你将发现,这个文件中“什么都没有”。如图1.17所示。
图1.17
首先先对这个窗口做一些简单的介绍,大家可以看到,这个窗口大致分为三个部分,即上面的对象操作栏,左面的对象分组导航以及右边的对象浏览部分。
在左边的对象导航栏中,列出了几种在Access中存在的对象,这里我们一般仅会用到“表”这个对象,在少数时候也会用到“查询”对象,因此,你基本不用点击左边的导航按钮。在右边的对象浏览中,将出现我们所建立的数据表,因为我们还没有建立任何表,所以你会发现这里还没有任何的表,仅仅有三个建立表的选项,即“使用设计器创建表”、“使用向导创建表”以及“通过输入数据创建表”,那么,我们一般使用哪种方式来创建一个表呢?这里我推荐你使用“使用设计器创建表”,因为“使用向导创建表”这一方式通常是从Access内置的几种常用的数据库设计中选择一个,往往不能满足我们的要求,而“通过输入数据创建表”这一方式又不方便对所创建的表中的数据列进行属性的编辑,也不能满足我们的要求。
OK,那么我们就来开始使用设计器来创建数据表。
双击“使用设计器创建表”,这时你将打开一个如图1.18所示的窗口,在这个窗口,我们将完成创建表的工作。
图1.18
我们可以看到,这里的创建表窗口仍然是以行、列形式输入的,每一行,我们可以创建表中的一个数据列(“数据列”的名称为了让大家直观理解,一般称之为字段),这里创建一个字段,需要输入字段的“字段名称”,还应当选择字段的“数据类型”,为了便于记忆和理解字段的作用,还可以输入字段的说明。
我们来试着建立一个表Book,该表共有五个字段,分别为BookID、BookName、BookPrice、BookPubDate以及BookClick,下面在Access中建立这些字段。
首先打开表设计器,然后在字段名称的第一行中输入BookID,并在数据类型中选择“自动编号”,同时注意表1.1中BookID的备注信息,此处说明这个字段是“主键”,因此还要在Access中设定主键,在我们刚才输入的BookID字段前点击右键选中这个字段,然后在右键菜单中选择“主键”,如图1.19所示。
图1.19
设定完毕主键的字段,可在其字段前看到标识图标。
而后依次输入字段名称并选择字段的数据类型,需要注意的是,对于本数据表中的BookPrice和BookClick两个字段,其字段的“数据类型”处均应当选择数字型,而后在字段属性详情中继续选择相应的类型,如BookPrice字段的设定,如图1.20所示。
图1.20
在输入完毕所有字段后,即可点击Access菜单中的“保存”,此时由于这个数据表还没有保存,因此会进行提示,要求输入数据表名称,此时输入Book,并点击保存即可。
[NextPage]
l 在Access中导入Access数据表
在使用Access时,有时需要从别的库中导入数据,例如,从另一个Access数据库中导入一些文章,包括文章标题、文章内容等信息,或者还可能从Excel文件中导入一些数据,例如学校的考试成绩表等,如果不会使用Access的导入功能,你可能就需要手动得一条一条输入数据了,因此在这里我们简单讲解Access的导入功能。
首先不妨假设我们有一个Access数据库Article.mdb,在这个数据库中要存放一些文章信息,因此在这个数据库中有一个表Article,在这个表中有三个字段,如表1.1。
表1.1
字段 |
类型 |
描述 |
可否为空 |
默认值 |
备注 |
AricleID |
自动编号 |
文章编号 |
否 |
主键 | |
ArticleTitle |
文本 |
文章标题 |
否 |
||
ArticleTitle |
备注 |
文章内容 |
否 |
与此同时,我们还有一个已经存放了许多文章,但是数据库结构和Article.mdb不同的数据表Source.mdb。
首先我们需要打开文件Article.mdb,然后在Access菜单栏中的“文件”→“获取外部数据”打开“导入”功能,如图1.21所示。
图1.21
此时会弹出打开文件的对话框,此时选择我们的数据源文件Source.mdb。此时要求你选择“导入对象”,由于Source.mdb文件中保存文章信息的表是PE_Article,因此我们选择这个表,而后点击确定,如图1.22所示。
图1.22
此时可以在对象浏览窗口中看到,表PE_Article已经复制到数据库Article.mdb中了,如图1.23所示。
图1.23
这时有两种方法可以完成将数据导入Article表中的操作。
第一种是用复制法,打开表PE_Article,而后在其文章标题列Title上点击鼠标右键,选中整列,而后复制,并打开表Article,选中其标题列ArticleTitle,点击粘贴,再打开表PE_Article,选中其内容列Content,重复刚才的动作即可,如图1.24和图1.25。
图1.24
图1.25
另一种方法则比较巧妙,首先将原有的表Article删除,而后将表PE_Article改名为Article,最后再在现在的表Article上点击右键,选择“设计视图”,在表的设计视图中删除无关的字段,并修改Title字段和Content字段的名称即可。
l 在Access中导入Excel数据表或文本文件
大家都知道,Access和Excel都是Microsoft Office家族的成员,根据微软一向保持的良好兼容特性,在这个家族成员中的两个软件,其文件往往是可以互相导入的,除此以外,Access的导入功能还可以智能的识别许多其他数据库的格式,例如dBase、lotus等,当然,也可以识别以某种特定符号分割的文本文件,对于这些文件的导入功能都是类似的,这里我就以Excel文件为例来进行讲解。
我在上高中时,高中的期中、期末考试成绩是由教学处进行汇总,并最终存放在Excel中,最终发放到各个班级,给同学们查看的(如图1.26所示),在那时我用ASP写了一套查询和分析成绩的软件,放在网上让同学们使用,这时,我要进行的第一步工作就是将Excel中的数据导入到Access当中(当然,如果你愿意,也可以直接使用ASP来读取和操作Excel文件)。
图1.26
由于Excel数据表中已经存在了相关信息,因此这里就不需要再在Access数据库中建立表了,首先我们来新建一个Access文件,然后在菜单栏的“获取外部数据”中选择导入,并选择我们的Excel文件成绩.xls,此时会打开“导入表向导”,在这个向导中我们将完成导入的所有操作。
向导的第一步是让你选择,是否将第一行的各列作为标题,因为一般在Excel数据表中,都会在数据的第一行写上该列数据的标题,在我们的成绩表中,也按照这个原则,写了“姓名”、“考号”和各科名称,因此这里选择“第一行包含列标题”,并点击“下一步”。
而后想到将让你选择将导入的数据保存在新表中还是现有表中,这里由于我们是完全从Excel中导入的数据,因此选择“新表中”,并点击“下一步”。
而后导入向导让你来对要导入的各列进行定义,你可以修改字段的标题,还可以选择“不导入字段”,这里我们不需要对其进行修改,因此可以直接点击“下一步”。
而后想到进入主键选择部分,这里有三个选项,“让Access添加主键”代表Access将自动添加一个字段作为主键,“我自己选择主键”代表你将从已经存在的字段中选择一个作为主键,“不要主键”代表不设定主键。这里我们不设定主键,即,选择“不要主键”,并点击“下一步”。
而后将进入想到的最后一步,即填写要新建的表的名称,这里我们填写“成绩”,最后点击“完成”,完成整个的导入工作。
[NextPage]
我们在使用Access数据库的时候,经常会遇到一些小麻烦,例如数据库中自动编号不连续、由于安全问题需要给数据库加密等,本节介绍了若干技巧来帮助你解决这些问题。
当我们从Access数据库中删除若干条数据后,会发现,Access数据库文件并没有因此而减小,同时,如果使用了“自动编号”字段时,会发现删除记录后,后续的记录编号并不是继续编写的,看上去好像“隔了一些编号”(如图1.27所示),这是因为,Access在删除记录后,并不是实际的将其从文件中删除,而是给这些记录打上了删除的标记,这和Windows的文件管理是类似的。
图1.27
为了减少文件体积和使得自动编号连续,我们需要对数据库进行压缩。
点击Access菜单栏中的“工具”项目,然后选择“数据库实用工具”中的“压缩和修复数据库”,如图1.28所示。此时将自动关闭数据库文件并进行压缩,压缩完毕后自动重新打开数据库文件,这样我们即可完成对已经删除的数据所占用空间的释放。
图1.28
[NextPage]
有时由于安全等问题,需要给我们的数据库加入密码,以使得只有知道密码的用户才能够打开数据库进行操作。下面我们就来完成对数据库加密的操作。
对数据库加密首先需要以独占方式来打开数据库,具体做法是打开Access软件(注意是双击Access的快捷方式运行,而不是通过双击数据库文件来启动),然后在菜单栏的“文件”项中选择“打开”,选择数据库,注意选择数据库后应当点击“打开”按钮右侧的下三角形箭头,选择“以独占方式打开”,如图1.29所示。
图1.29
打开数据库后,在菜单栏的“工具”项中选择“安全”下的“设置数据库密码”项,而后输入数据库密码即可完成对数据库的加密操作。
对数据库进行加密后,再使用Access打开数据库时,会要求输入密码,如果不能正确输入密码,则不能对数据库进行操作。
另外这里要说的一点是,不能够仅依赖Access的加密功能来对数据库进行加密,因为这个加密方式并不是非常严谨,它将数据库密码以16进制进行了一定的可逆编码操作,并存放在Access文件当中,现在已经有人破解了这个加密机制,通过软件,可以轻易的读出Access文件的密码。
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛