说 明:理解与掌握ACCESS ---- 关键词:ACCESS----Foxpro----数据库 ---- 微软公司有两个流行的桌面数据库开发工具,一个是其自行研制开发的基于WINDOWS 环境的ACCESS,另一个是其兼并FOX 公司而得到的Foxpro。通常将dBASE、FoxBase、Foxpro 等统称为xBase 在我国拥有大量的用户,随着微软公司的ACCESS 在国际桌面数据库市场上的迅速崛起及中文OFFICE 在我国的深入普及,越来越多的用户开始使用MSACCESS(中文OFFICE97 的组件之一),很多xBase 用户也开始转向或使用微软公司的ACCESS。由于ACCESS的文件组织、数据类型、编程语言、编程方法等 ---- 一、ACCESS 与xBase 的主要差异: ---- 从大的方面说,ACCESS 的使用与编程方法 ---- 文件组织不同:用xBase 建立的系统通常包含很多不同类型的文件,每一个表、程序、报表、查询、索引、菜单等内容都是文件的方式存放在磁盘上,可以通过项目文件对其他类型的文件进行组织与管理;ACCESS 对数据库的组织同大型后台数据库系统(如SQL SERVER)的数据库组织非常相似,不同数据或程序元素称为对象,所有的 ---- 编程语言不同:在传统的xBase 中,表、记录等数据操纵或是界面的设计采用的是xBase 命令进行编程,高版本的Foxpro 中引入了部分SQL 语句(如SQL-SELECT)主要用来完成数据的查询;ACCESS 中对表、记录等数据操作主要通过SQL 实现,程序及事件代码的编写采用Visual Basic for Application(低版本的ACCESS 用access basic 编程),简单的程序设计用宏。Visual Basic 是更为通用的编程语言,MS Office 的组件都可以用Visual Basic 进行编程。 ---- 编程方法不同:xBase 中采用面向过程的程序设计方法,即使是一个用户输入界面的设计也需要较长的一段xBase 程序;ACCESS 中采用面向对象的程序设计方法,数据处理功能的完成通过改变对象的属性或执行对象方法实现,程序段通常构成事件过程、对象方法、函数,ACCESS 中较少会出现连续的长程序。此外,ACCESS 中具有字段级、记录级、表级数据引用完整性数据约束功 ---- 二、ACCESS 中的数据库对象 ---- ACCESS 的数据库窗口中包含六类不同的数据库对象,它们分别是表(Table)、查询(Query)、窗体(Form)、报表(Report)、宏(Macro) 和模块(Module)。ACCESS的数据库如同一个容器一样包含了全部的数据 ---- ACCESS 中的表:ACCESS 中的表等同于xBase 中的DBF文件或Visual Foxpro 中的数据库表。ACCESS 的表 字段名可多达64 位字符
---- 根据需要可在ACCESS 的数据库中创建多个表,表与表之间能够建立所谓的参照完整性关系,如同在xBase 中用set relation 、set skip 命令创建的多对一和一对多关系一样,ACCESS 只需图形界面操作就可完成一对多和多对一关系的建立并且通过连锁删除与连锁更新来确保相关表中记录之间关系的有效性,并且不能意外地删除或更改相关数据。 ---- 使用ACCESS 表与使用xBase 的DBF 文件的一个重要 ---- 查询(Query):ACCESS 中的查询本质上就是SQL 的数据操纵语,利用查询可以通过不同的方法来查看、更改以及分析数据,相当于Foxpro 中的SQL SELECT 语句及Foxpro 的查询。在ACCESS 中,对表、记录、字段的多数操作都可通过查询来完成,例如:在xBase 中使用很多的REPLACE … WITH … 命令在ACCESS 中应当用一个动作查询来完成(SQL UPDATE ---- ACCESS 中选择查询比Foxpro 中的SQL SELECT 命令使用起来更为方便灵活,在ACCESS 中,选择查询在使用等同于表,可以在表与查询间建立关系,查询也可象表一样作为窗体和报表的记录来源,利用查询还能再建查询。 ---- 窗体(Form):窗体是利用ACCESS 开发出系统的主要交互界面,在有些书刊上又把窗体叫做窗体,窗体相当于xBase 中利用@AYET 命令编写用于实现所谓全屏幕编辑功能的程序,窗体又近似于Foxpro 中的屏幕文件(.SCX)。在ACCESS 中建立人机交互界面如同在Foxpro 中建立屏幕文件需要创建窗体对象。 ---- 报表(Report):ACCESS 的报表对象最接近xBase 中的报表文件(FRX、FRM)。在xBase 中建立报表文件之 ---- 宏(Macro):宏是指一个或多个操作的集合,其中每个操作实现特定的功能,例如打开某个窗体或打印某个报表。宏可以使某些普通的任务自动完成。例如,可设置某个宏,在用户单击某个命令按钮时运行该宏,以打印某个报表。在xBase 中没有特定的文件类型与ACCESS 的宏相对应,在ACCESS97 及以下的版本中,利用宏来创建用 ---- 一、ACCESS 中用户界面设计 ---- 1. 理解窗体与程序 ---- Foxpro 中,建立用户交互界面需先建立屏幕文件,屏幕文件中又包含若干代码片段(CodeSnippet),利用生成器根据屏幕文件生成扩展名为SPR 的程序文件,代码片段被包含在程序文件之中,执行程序文件即出现交互式用户界面。ACCESS 中,窗体相当于屏幕文件,窗体有三种不同的视图(VIEW)-- 设计视图、窗体视图和数据表视图。设计视图模式用于设计或修改窗体,窗体设计好之后就可以以窗体视图或数据表视图打开窗体即为用户操作使用的交互界面。ACCESS 中不需要将窗体生成程序代码,窗体建好之后直接打开窗体或切换到窗体视图即可。Foxpro 中另人头疼的事情之一是调试屏幕时反复修改屏 ---- 窗体模块与事件过程:在Foxpro 中,@ET 、READ、ACTIVATE 等命令中都可带有许多子句,如:最为常用的VALID 子句,子句通常跟一个用户自定义函数,在用屏幕生成器建立屏幕文件时,子句后的自定义函数的内容可直接输入,这些子句用到的自定义函数程序段被称为代码片段(CodeSnippet)。ACCESS 中,与Foxpro 中代码片段相对应的程序段是事件过程(Event Procedure),所谓事件过程是指一种自动执行的过程,用来对用户或程序代码激活的事件或系统触发的事件作出响应。例如:在Foxpro 中若想在某一字段的值输入或修改之后执行某一段程序,则需要通过输入代码片段建立VALID 子句及VALID 子句所需要的自定义函数;在ACCESS 中,某控件(CONTROL)的值在输入或修改之后欲执行某段程序需在该控件的AfterUpdate 事件属性的事件过程中输入程序内容即可,当控件的值发生变化之后发生After Update 事件系统就自动执行该事件对应的事件过程。ACCESS 中每一个窗体都有与该窗体相关联的窗体模块,窗体模块中存放了所有该窗体的事件过程和该窗体的公用子程序和函数,窗体保存时该窗体模块自动保存。 ---- 2. 理解记录来源(Record Source) ---- 在Foxpro 中,创建屏幕文件之前应先打开相关的表,建立表与表之间的关系,屏幕文件建立之后在保存时系统会询问是否保存环境(Environment),若保存环境则系统保存了打开的表,生成程序代码中包含有打开和关闭表的命令。ACCESS 中窗体的"数据环境"被称为记录来源(Record Source),记录源可以是表、查询或SQL 的SELECT 语句。ACCESS 的记录来源比Foxpro 的"数据环境"提供了更大的灵活性,当ACCESS 窗体的记录来源是相互?关联"的若干表时,ACCESS 中通过建立查询或是使用SQL SELECT 语句作为记录来源,而查询与SELECT语句指定了相关的表及表间关系。 ---- 建立Foxpro 的屏幕文件需先打开相关表并保存"数据环境"才能在生成程序时包含有打开表的代码行,ACCESS 窗体的记录来源只是在窗体的记录来源属性中给出表、查询名字或SQL SELECT 语句,记录来源并不生成程序代码。窗体在打开时自动处理表、查询及SELECT 语句的数据,并没有什幺命令或语句来处理表、查询的打开问题。 ---- 3. 理解控件、属性及事件过程 ---- Foxpro 屏幕生成器界面中添加的文本框(TextBox)、列表框(ListBox)等项目在生成程序后对应内存变量或字段变量,屏幕生成器中对文本框等项目的许多设置形成了生成代码的@ ..GET语句的许多子句如:ENABLE 、DISABLE 、FONT、STYLE、DEFAULT、MESSAGE、RANGE 、COLOR 等,屏幕生成器中输入的代码片段(Code Snippet)形成了程序中的自定义函数或过程和@et 语句的VALID、WHEN 等子句。 Foxpro 子句 ---- 1. 在窗体中"移动记录指针" ---- 通过foxpro 屏幕生成器创建的用户界面中常常包含用于移动记录的按钮,通过单击按钮改变屏幕或窗口中当前记录,foxpro 中实现该功能的方法一般是在按钮变量的valid 子句的函数中增加指针移动语句如:skip、goto 、locate 等。Xbase用户初次使用ACCESS 窗体时欲实现同等功能但往往不知如何下手,ACCESS 中实现窗体中记录导航可以通过以下三种方法: 在窗体的左下角增加记录导航控制按钮(navigation button)使用Goto Record 宏或Find Record 宏使用数据访问对象(DAO)改变当前窗体的记录 ---- 若只是在窗体中前后移动记录,不需要编写程序,在窗体的设计视图将窗体的navigation button值设置为true,则在窗体时就会出现导航按钮,用户通过单击导航按钮前移、后移记录。若想将记录移到特定的记录则必须通过用宏或VB 编程实现,例如:单击窗体中的CMD 按钮下移三个记录则在CMD 按钮的on click 事件过程中输入如下VB 语句: ---- DoCmd.GoToRecord ,,,3 ---- 下面的示例在当前窗体中使用记录集及FindFirst 方法将记录定位到"姓名"字段值为?张三"的记录: Dim rst As Recordset
---- 一、xBase 中的常用命令在ACCESS 中如何实现 ---- 许多xBase 用户初次使用ACCESS 时常常在ACCESS 中查找与xBase 命令相当的语句、功能或实现方法,下表给出了常用的xBase 命令所对应的ACCESS 宏命令及VB 语句或实现方法: Xbase 命令 OpenRecordset 方法 指定表字段的索引属性 通过工具栏的按钮或菜单上命令 使用SQL 语句 Dsum() 等函数 FindFirst 方法 使用SQL 语句 ---- xBase 用户在初次使用ACCESS 时对ACCESS 表的字段类型特别是数值型字段类型不适应。正是由于对ACCESS 的数据类型缺乏足够的了解,使得很多用户在开发过程中出现了一些问题。ACCESS与xBase 表的字段类型及其对应关系见下表: ACCESS 中表的字段类型
|
|站长邮箱|小黑屋|手机版|Office中国/Access中国
( 粤ICP备10043721号-1 )
GMT+8, 2025-4-4 05:20 , Processed in 0.140842 second(s), 17 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.