1、1,第十四章Visual Basic对数据库的访问,【学习内容】本章主要学习Visual Basic对数据库访问的方法,重点讲述了数据控件和ADO数据控件的使用。学习如何使用“可视化数据管理器”创建MS Access数据库和表,如何将数据库中的数据与文本框等控件进行绑定,特别是记录集Recordset的使用,通过对记录集数据的增加、删除、查找、指针移动等,来实现对数据库数据的操作。 SQL(Structured Query Language)是结构化查询语言,它是一种介于关系代数与关系演算之间的语言。SQL是一个通用且功能强大的关系数据库语言。注意了解SQL语言的特点及组成,掌握SELECT语
2、句的使用,在应用程序中正确使用SQL语句。 最后,使用Visual Basic提供的数据控件和可视化数据管理器,创建一个个人通讯录信息的管理应用程序。,2,14.1 数据库概述,14.1.1 数据库 数据库(Database)技术是数据处理的一种最新技术,目前已广泛应用于各个领域。数据库技术所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。数据库就是存放数据的仓库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据不是杂乱无章的,而是按照某种方式组织在一起的,这些数据可以供企业的各相关用户使用,使各用户可以共享某些数据,降低数据的冗余,减少造成数据不一致的
3、机会,保证数据的正确性、完整性和一致性。,3,14.1 数据库概述,14.1.2 数据库管理系统(DBMS) 数据库管理系统(Database Management System,DBMS)是为数据库的建立、使用和维护而配置的软件,它是建立在操作系统的基础上,位于操作系统与用户之间的一种数据管理软件,负责对数据库进行统一的管理和控制。用户发出的(或应用程序中的)各种操作数据库中数据的命令,都要通过数据库管理系统来执行。,4,14.1 数据库概述,14.1.3 数据库系统 数据库系统(Database System)是指带有数据库的计算机应用系统。数据库系统不仅包括数据库本身,即实际存储在计算机
4、中的数据,还包括相应的硬件、软件及各类人员。数据库系统的软件包括:数据库管理系统(DBMS)、支持数据库管理系统的操作系统、数据库应用开发工具、为特定应用开发的数据库应用系统。其中,DBMS是为数据库的建立、使用、维护、管理和控制而配置的专门软件,是数据库系统的核心。 数据库系统的人员包括:数据库系统管理员(DBA)、系统分析员和数据库设计人员、应用程序员、最终用户。他们分别扮演不同的角色,承担不同的任务。,5,14.1 数据库概述,14.1.4 关系数据库系统 关系数据模型是当前最流行、应用最广泛、最受用户欢迎的数据模型,基于关系模型的数据库系统称为关系数据库系统。 在关系模型中,无论是实体
5、还是实体之间的联系均由单一的结构类型即关系(二维表)来表示,任何一个关系数据库都是由若干相互关联的二维表组成。 一个关系就是一个二维表,表的名称是关系名。,6,14.2 可视化数据管理器,Visual Basic提供了一个功能较为强大的数据库管理工具可视化的数据管理器,利用该管理器可以创建数据库及数据表、维护数据库结构、修改数据、建立数据查询、动态构造SQL查询语句、设计数据窗体等操作。,7,14.2 可视化数据管理器,14.2.1 可视化数据管理器的使用 在Visual Basic主菜单“外接程序”中选择“可视化数据管理器”,就可以进入如图14-1所示的VisData界面进行数据库管理。,8
6、,14.2 可视化数据管理器,14.2.2 建立数据库及表 1创建数据库 在可视化数据管理的“文件”菜单中选择“新建”命令,然后在弹出的数据库类型中选择要创建的数据库的类型。在此,选择Microsoft Access(Version 7.0 MDB)。在弹出的对话框中,输入要创建的数据库文件名称及其保存路径,进入如图14-2所示的新建数据库界面。,9,14.2 可视化数据管理器,2创建表 在新建数据库界面的“数据库窗口”空白处单击鼠标右键,在弹出的快捷菜单中选择“新建表”,打开“表结构”对话框,如图14-3所示。,10,14.2.3 建立数据查询,1输入数据 创建表结构后,在“数据管理器”中可
7、以看到刚才创建的表名,在该表名上单击鼠标右键,选择“打开”命令打开“数据库内容”对话框,如图14-7所示。单击“添加”按钮,打开如图14-8所示的对话框,增加新的数据;如果单击“编辑”按钮,可以对已有数据进行修改。 2建立数据查询 输入数据后,可以利用VisData“实用程序”中的“查询生成器”建立数据查询。,11,14.3 数据控件的使用,Visual Basic提供了基于Microsoft Jet数据库引擎的数据访问功能。利用Jet引擎,可以进行数据的存储、更新、检索等操作。 14.3.1 数据控件概述 在Visual Basic中提供了两种与Jet数据库引擎接口的方法,一种是Data控件
8、,另外一种就是DAO对象。,12,14.3 数据控件的使用,Visual Basic通过DAO和Jet引擎可以访问3类数据库。 (1) Visual Basic数据库,即Microsoft Access数据库(*.mdb)。 (2)外部数据库,包括dBase III、dBase IV、Microsoft FoxPro 2.0和2.5以及Paradox 3.x和4.0等流行格式的数据库,这几种都是采用索引顺序访问方法(ISAM)的数据库。还可以访问文本文件格式的数据库和Microsoft Excel或Lotus1-2-3电子表格。 (3) ODBC数据库,包括符合ODBC标准的客户/服务器数据库
9、,如Microsoft SQL Server、Oracle等。,13,14.3 数据控件的使用,14.3.2 数据控件的属性 数据控件的主要属性如下。 (1)Align:指定Data控件的停靠方式,默认值为“0-None”。如果改变其默认值,例如设置为“2-Align Bottom”,则将Data控件停靠在所在窗体的底部。当窗体大小改变时,该控件的长度也会随之变化,但仍然位于窗体的底部。 (2)Caption设置Data控件的标题。常用作显示数据库记录指针的位置、数据库中的记录个数等信息。 (3)Connect指定所要连接数据库的类型。其格式如下: 【格式】.Connect=数据库类型,14,
10、14.3 数据控件的使用,例如,Data1.Connect=“Access“ (4)DatabaseName设置所要连接数据库的文件名,包括路径名。 例如,Data1.DatabaseName=“c:databasestudent.mdb“ (5)Exclusive设置连接的数据库是否为独占方式,默认值为False,以共享方式打开数据库。 (6)Readonly设置是否可以修改所连接数据库中的数据,默认值为False。 (7) Recordset该属性其实是一个由数据控件创建的记录集对象,通过该对象可以进行数据记录的添加、删除、编辑及更新,记录指针的移动,查找和定位符合指定条件的记 录等。,1
11、5,14.3.3 数据控件的事件,数据控件的事件如下。 (1)Reposition当改变当前记录的指针时,触发该事件。通常在该事件中读取Data控件的AbsolutePosition属性,显示当前记录的位置。 (2)Validate在一条不同的记录成为当前记录之前,或使用Update方法之前(用UpdateRecord方法保存数据时除外),以及在Delete、Unload或Close操作之前会发生该事件。它用来检查被数据控件绑定的控件中的数据是否发生变化。,16,14.3.4 数据控件的方法,数据控件的方法如下。 (1) Refresh刷新、重建或重新显示与数据控件相关的记录。用于数据源发生变
12、化的情况。 (2) UpdateControls将数据从数据库中重新读取到所绑定的控件中,相当于取消绑定控件中的修改。常用于取消当前修改的按钮Click事件中。 (3) UpdateRecord将绑定控件中的数据写入数据库中。常用于保存数据按钮的Click事件中。,17,14.3.5 数据控件应用实例,【例14-3】 利用数据控件和文本框来实现数据库的连接、数据的绑定和显示。 按表14-5所示的学生信息表,在C盘根目录新建名为Student.mdb的Access数据库,在该数据库中新建表Stu,并将学生信息存入该表中,表的结构如表14-6所示。然后在Visual Basic中新建1个窗体,添加
13、1个Data控件和8个文本框控件,设置文本框和数据控件的相关属性,将表中的数据和文本框进行绑定。再添加ImageList和Toolbar控件,分别建立增加、删除、查找、保存、取消和退出的工具栏按钮,实现数据记录的增加和删除操作,根据指定学号查找记录,保存已修改的数据等。最后添加菜单栏,使其也能实现上述工具栏按钮。,18,14.3.5 数据控件应用实例,(1)建立数据库。创建数据库有两种方式,一是利用Microsoft Access建立数据库,如图14-13所示,建立如表14-6所示结构的表Stu;二是在Visual Basic主菜单“外接程序”中选择“可视化数据管理器”命令(VisData)来
14、建立数据库。,19,14.3.5 数据控件应用实例,进入VisData后,打开“文件”菜单,选择“新建”命令,选择“Microsoft AccessVersion 7.0 MDB”选项,输入新数据的名字Student.mdb。然后,在空白处单击鼠标右键,选择“新建表”命令如图14-14所示,建立如表14-6所示结构的表Stu,如图14-15所示。,20,14.3.5 数据控件应用实例,最后是工具栏按钮的ButtonClick事件代码。通过工具栏按钮的ToolTipText属性,能够确定用户单击的是哪一个按钮,然后执行相应的代码。 Private Sub Toolbar1_ButtonClick
15、(ByVal Button As MSComctlLib.Button) 工具栏按钮单击Select Case Button.ToolTipTextCase “增加“:Add_DataCase “删除“:Delete_DataCase “查找“:Find_DataCase “保存“:Save_DataCase “取消“:Cancel_DataCase “退出“:EndEnd Select End Sub 程序运行结果如图14-20所示。,21,14.4 ADO数据控件,ADO是ActiveX Data Objects的缩写,简单来说是一种访问数据的方法。该方法是通过OLE DB提供者对数据库服
16、务器中的数据进行访问和操作的,其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO支持用于建立基于客户端/服务器的C/S和基于Web的B/S应用程序。,22,14.4.1 使用ADO数据控件,【例14-4】 使用例14-3的学生信息数据库,利用ADO数据控件和DataGrid控件来实现数据库的连接及数据的绑定,并在DataGrid控件中显示stu表。,23,14.4.1 使用ADO数据控件,操作步骤如下。 (1)添加部件。 在工具箱中增加ADO数据控件对象Adodc1和DataGrid控件对象DataGrid1。 在工具箱空白处单击鼠标右键,选择“部件”命令(或选择“工程”菜单中
17、的“部件”命令),打开“部件”对话框,如图14-21所示。 选中“Microsoft ADO Data Control 6.0(OLEDB)”和“Microsoft DataGrid Control 6.0(OLEDB)”复选框,单击“确定”按钮。 (2)添加控件。 分别添加Adodc控件和DataGrid控件到窗体中,调整其大小,并设置Adodc的Caption属性为“学生信息表”,如图14-22所示。,24,14.4.1 使用ADO数据控件,(3)设置Adodc控件连接字符串。 单击Adodc控件ConnectionString属性的符号“”,出现Adodc属性页。 选中“使用连接字符串”
18、单选按钮,单击“生成”按钮,打开“数据链接属性”对话框。在此使用“学生信息”Access数据库,因此在“提供者”选择卡中选中“Microsoft Jet 4.0 OLE DB Provider”。 单击“下一步”按钮,打开“数据链接属性”对话框。单击“连接”选项卡,选择或者输入数据库名称。 单击“测试连接”按钮,出现测试连接成功提示,表示利用ADO数据控件和指定的数据库建立好了连接。,25,14.4.1 使用ADO数据控件,(4)设置Adodc控件记录源。 单击Adodc控件RecordSource属性的符号“”,弹出记录源属性页,如图所示。选择“命令类型”为数据表“2-adCmdTable”
19、,并在“表或存储过程名称”下拉列表框中选择学生信息表“stu”。单击“确定”按钮,返回窗体的设计视图,Adodc控件设置完毕。,26,14.4.1 使用ADO数据控件,(5)设置DataGrid控件数据源。 将DataGrid和Adodc进行绑定。单击DataGrid控件的DataSource属性,在下拉列表框中选择ADO数据对象Adodc1。 (6)运行。 按F5键运行,结果如图所示。 DataGrid控件除了可以绑定数据之外,还可以与文本框、组合框、列表框进行绑定,也可以与第三方的数据控件进行绑定。,27,14.4.1 使用ADO数据控件,(7)添加其他绑定控件。 在上面的基础上添加一个标
20、签,Caption属性为“绑定姓名”,添加一个文本框和一个DataList控件。 (8)设置其他绑定控件属性 设置文本框的DataSource属性为“Adodc1”,并设置其DataField属性为将要显示的字段名称,如“Stu_Name”。 设置DataList的RowSource属性为“Adodc1”,并设置其ListField属性为将要显示的字段名称,如“Stu_Name”。 按F5键运行,结果如图所示。,28,14.4.2 使用数据窗体向导,Visual Basic提供了实用简便的数据窗体向导。 (1)选择“工程”菜单中的“添加窗体”命令,打开“添加窗体”对话框,如图14-30所示。
21、(2)选择“VB数据窗体向导”,单击“打开”按钮,出现“数据窗体向导”的“介绍”对话框,单击“下一步”按钮,打开“数据库类型”对话框,如图14-31所示。 (3)选择“Access”,单击“下一步”按钮,浏览选择或输入数据库的名称。 (4)单击“下一步”按钮,进入Form窗体布局对话框,如图14-32所示。输入窗体名称frmData,选择“窗体布局”为“网格(数据表)”。,29,14.4.2 使用数据窗体向导,(5)单击“下一步”按钮,打开“记录源”对话框,如图14-33所示。选择“记录源”为学生信息表“stu”,将所有可用字段选入到“选定字段”中,并将“列排序按”选择为“stu_no”,按照
22、学号排序。 (6)单击“下一步”按钮,打开“控件选择”对话框,如图14-34所示。用户可以根据需要选择窗体上出现的复选框。单击“完成”按钮,返回到设计界面。 (7)将工程中原来的Form1移除,选择“工程”菜单中的“工程属性”命令,打开“工程属性”对话框,如图14-35所示,此时将由向导建立的窗体frmData设置为工程的启动对象。 (8)按F5键运行,结果如图14-36所示。 在Form窗体布局对话框中,还可以设置窗体布局为“单个记录”、“主表/细表”及“MS HFlexGrid”等,运行结果如图14-37图14-39所示。,30,14.5 SQL,SQL是Structured Query
23、Language(结构化查询语言)的缩写,是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。SQL于1974年由Boyce和Chamberlin提出,在IBM公司研制的关系数据库管理系统原型系统System R上首次得到实现。从1986年起先后成为关系数据操作的美国和国际标准,逐渐被各种数据库厂商采用,而成为一种通用的标准查询语言。只要学会SQL,即可操作各种数据库,如Visual FoxPro、Access及Oracle等。总之,SQL功能强大,简单易学,使用方便,已经成为数据库操作的基础。 SQL不仅具有查询数据库的功能,而且还可以对数据库完成选取、增删、更新与跳转等各种操作。S
24、QL具有以下的主要特点。,31,14.5 SQL,1综合统一 SQL集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。 2高度非过程化 用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,存取路径的选择以及SQL语句的操作过程均由系统自动完成。 3面向集合的操作方式 SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 4语言简洁,易学易用 SQL十分简洁,完成数据定义、查询、操纵、控制的核心功能只用了9个命令,如表14-8所示,而且S
25、QL语法简单,接近英语口语,容易学习和使用。,32,14.5.1 SQL的组成 SQL由命令(函数)、子句、运算符、聚合函数及通配符等组成。 (1)命令SQL中的数据定义语言可用来建立新的数据库、数据表、字段及索引等。SQL中的数据操作语言,可用来建立查询表、排序、筛选数据、修改、增删等动作。数据定义语言命令常用的有选择、添加、删除和修改4种。,14.5 SQL,33,14.5 SQL,14.5.2 SQL的查询功能SELECT语句 查询语句是SQL的核心语句。 SQL提供了强大而灵活的数据查询功能。查询语句的一般格式如下: 【格式】SELECT DISTINCT FROM WHERE GRO
26、UP BY HAVING内部函数表达式ORDER BY , ; 【功能】根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中的属性值形成结果表。,34,14.5 SQL,SQL查询分为单表查询、连接查询、嵌套查询和集合查询。 1单表查询 单表查询指目标列均来自同一个基本表或视图。 (1)查询表的列 查询指定的列就是对表(关系)做投影运算。 查询指定的列 通过在SELECT后指定具体的属性名可以只查看相应的属性列的值。,35,14.5 SQL, 查询指定的列,并取消重复元组 如果要取消查询结果中的重复元组,可以在SE
27、LECT后查询列前加入一个DISTINCT关键词。 【例14-6】 显示账户表ACCOUNT中所有存款人的身份证号和姓名。 由于一个人可以开设多个账户,因此,应该使用DISTINCT子句排除重复的元组。 SELECT DISTINCT ID_CODE, NAME FROM ACCOUNT 查询全部列 如果需要查看表中所有的列,可以将所有列的列名在SELECT后列出,但如果属性列比较多,显然比较麻烦,因此,SQL规定可以使用“*”代替所有列。,36,14.5 SQL,【例14-7】 显示账户表ACCOUNT中所有账户的信息。 SELECT * FROM ACCOUNT 查询结果中引入常量 在SE
28、LECT中可以引入常量,用于表示一个常量列,或某一属性列与常量计算以后的值列。最常使用的常量有两种:数值常量,例如:10, 100.2;字符常量,用单引号扩起来的任意合法字符序列,例如:姓名:,总计:。,37,14.5 SQL,【例14-8】 显示账户表ACCOUNT中所有账户的账号和余额与1000的差额,并显示提示。 SELECT ACCOUNT_NUMBER,差额:, BALANCE-1000 FROM ACCOUNT 为查询结果的列指定别名 如果SELECT子句中不是简单的属性名,而是一个表达式,为了在显示结果时能明确表示列的含义,可以为该表达式所在的列指定一个别名,别名和该表达式之间用
29、空格隔开。例如,例14-8可以改写为: SELECT ACCOUNT_NUMBER,BALANCE-1000 差额 FROM ACCOUNT (2)查询满足条件的行 查询满足条件的行就是对表(关系)进行选择运算。通过在WHERE子句中给定查询条件,可以找出满足条件的元组。查询条件中常用的运算符如表14-15所示。,38,14.5 SQL, 查询满足简单比较条件的元组 【例14-9】 在账户表ACCOUNT中查找账号为“610557899”的户主及其账户余额。 SELECT NAME, BALANCE FROM ACCOUNT ; WHERE ACCOUNT_NUMBER = 610557899
30、 【例14-10】 在账户表ACCOUNT中查找余额不小于10 000的户主及其账户余额。 SELECT NAME, BALANCE FROM ACCOUNT WHERE NOT BALANCE 10000 查询指定属性值为空的元组 【例14-11】 在客户基本信息表CUSTOMER中查找信用等级CREDIT_RATEING为空的客户的信息。 SELECT * FROM CUSTOMER WHERE CREDIT_RATEING IS NULL,39,14.5 SQL, 查询属性值在某一范围内的元组 【例14-12】 在账户表ACCOUNT中查找账户余额在10万元20万元之间的账户信息。 SE
31、LECT * FROM ACCOUNT ; WHERE BALANCE BETWEEN 100000 AND 200000 查询属性值在某一集合内的元组 要比较的属性值和集合的元素应该类型匹配。,40,14.5 SQL, 查询满足字符匹配条件的元组 LIKE 只能用于对字符型属性的比较,一般都要使用通配符“%”或“_”。 【例14-14】 在客户基本信息表CUSTOMER中查找身份证号码第2、3位为“01”的所有客户的基本信息。 SELECT * FROM CUSTOMER ; WHERE ID_CODE LIKE _01% 【例14-15】 在客户基本信息表CUSTOMER中查找身份证号码以
32、“510102”开头的所有客户的基本信息。 SELECT * FROM CUSTOMER ; WHERE ID_CODE LIKE 510102%,41,14.5 SQL,(3)使用聚合函数的查询 为增强检索功能,在SELECT子句中可以使用多种函数,其中,聚合函数是最常使用的一类函数。在聚合函数中也可以在指定列名前加DISTINCT短语,表示在计算时取消指定列中的重复值。 【例14-16】 统计总存款余额。 SELECT 存款余额, SUM(BALANCE) FROM ACCOUNT 【例14-18】 统计存款余额大于10 000的账户的平均余额。 SELECT AVG(BALANCE) F
33、ROM ACCOUNT WHERE BALANCE10000,42,14.5 SQL,2连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。一个有意义的连接查询必然包含WHERE子句,并且条件表达式中必然包含连接的两个表(或多表)中相应列的比较运算,格式如下: 【格式】. . 其中,列名1、列名2的类型必须是可比的,但不必是相同的。如果某列名在多个表中是惟一的,则可以省略其前面的“表名.”。如果比较运算符为“=”,则称为等值连接,否则为非等值连接。,43,14.5 SQL,【例14-22】 列出所有职业为“教师”的存款人姓名、身份证号、账号、余额。 本题是在账户表ACCOUNT种
34、选择一部分元组,但选择的条件不能直接表达,需要借助客户信息表CUSTOMER,在CUSTOMER中限定要查找的存款人,按身份证号将两表作等值连接。 SELECT ACCOUNT.NAME, ACCOUNT.ID_CODE,ACCOUNT_NUMBER,BALANCE ; FROM ACCOUNT, CUSTOMER ; WHERE CUSTOMER.OCUPATION=教师 AND CUSTOMER.ID_CODE=ACCOUNT.ID_CODE,44,14.5 SQL,3嵌套查询 在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在一个查询语句的FRO
35、M、WHERE子句或HAVING短语的条件中的查询称为嵌套查询,嵌套的查询块称为子查询,子查询中不能使用ORDER BY子句。外层的查询语句称为父查询。嵌套查询中,最常用的是在WHERE子句中嵌套查询块构成查询条件。 SQL语言允许多层嵌套查询。即一个子查询中还可以嵌套其他子查询。 嵌套查询有两种类型:不相关子查询(在执行时由里向外处理。即每个子查询在其上一级查询处理之前处理,子查询的结果用于建立其父查询的查找条件)和相关子查询(内层子查询的处理需要使用外层查询的某个值)。,45,14.5 SQL,在WHERE子句中嵌套子查询有以下3种方式。(1)IN(子查询):谓词IN用于判断某个属性列值是
36、否在子查询的结果中。 (2)ANY或ALL(子查询):ANY表示子查询结果中存在某个值,ALL表示子查询结果中的所有值,ANY和ALL必须与关系运算符(例如:=、!=等)配合使用。当子查询的结果可以确定只有一个值时,可以省略ANY或ALL。 (3)EXISTS(子查询):带有EXISTS谓词的子查询不返回任何实际数据,只产生逻辑真值或逻辑假值。,46,14.5 SQL,4集合查询 每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合操作来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。 使用UNION将多个查
37、询结果合并起来,形成一个完整的查询结果时,系统会自动去掉重复的元组。需要注意的是,参加集合操作的各表的属性数必须相同,对应位置的属性的类型也必须相同。 【例14-27】 统计从未发生过支取业务的账户。 SELECT ACCOUNT_NUMBER FROM ACCOUNT ; MINUS ; SELECT DISTINCT ACCOUNT_NUMBER FROM DEPOSIT_DRAW ; WHERE STYLE=1,47,14.5 SQL,14.5.3 在应用程序中使用SQL语句 在设置Adodc控件的RecordSource属性时,可以在如图14-40所示的记录源属性页中选择“命令类型”为
38、数据表“8-adCmdUnknown”,就可以在命令文本中直接输入SQL语句作为Adodc控件的记录源。运行结果如图14-41所示。,48,14.6 Visual Basic+Access开发案例,【例14-29】 创建一个个人通讯录信息的管理应用程序。 1个人通讯录应用的数据库设计 下面将使用“可视化数据管理器”建立个人通讯录应用的Access数据库,该数据库用来存放通讯录的信息。 操作步骤如下: (1)在Visual Basic集成开发环境中,打开“外接程序”菜单,单击“可视化数据管理器”命令,打开“可视化数据管理器”窗口,如图14-44所示。 (2)在“可视化数据管理器”中,打开“文件”
39、菜单,单击“新建”命令,选择“Microsoft Access”中的“Version 7.0 MDB”选项。在弹出的对话框中,输入要创建的数据库文件名称及其保存路径,进入如图14-45所示的新建数据库界面。这里输入数据库文件名是“address.mdb”。,49,14.6 Visual Basic+Access开发案例,(4)在图14-45左侧“数据库窗口”的空白处单击鼠标右键,在弹出的快捷菜单上选择“新建表”命令,打开“表结构”对话框。 在“表名称”栏输入“information”,单击“添加字段”按钮,打开“添加字段”对话框。按表14-16所示输入字段的名称、类型及大小等,单击“确定”按钮
40、。重复添加字段,直到所有字段输入完毕,如图所示。单击“生成表”按钮,回到数据库窗口,如图所示。,50,14.6 Visual Basic+Access开发案例,2个人通讯录应用的界面设计 在Visual Basic集成环境下,使用“数据控件”和“数据绑定”控件存取先前建立的“address.mdb”数据库中的information表,建立个人通讯录管理程序。 操作步骤如下。 (1)设计个人通讯录窗体。新建1个窗体,在上面添加1个Data控件、1个ImageList控件、1个Toolbar控件、1个菜单、6个标签、6个文本框。分别设置这些对象的属性如表14-17所示。 (2)菜单的设计。在Vis
41、ual Basic集成开发环境中,打开“工具”菜单,单击“菜单编辑器”命令,打开菜单编辑器。设计菜单,如图14-52所示。,51,14.6 Visual Basic+Access开发案例,(3)工具栏的设计。右键单击ImageList控件,在弹出菜单中选择“属性”命令,打开ImageList控件的属性设置页。在ImageList控件的属性页中插入一些图片,如图示。这些图片将成为工具栏中按钮的图标。,52,14.6 Visual Basic+Access开发案例,右键单击Toolbar控件,在弹出菜单中选择“属性”命令,打开Toolbar控件属性设置页。在Toolbar控件属性页中插入按钮,为各按钮选择相应的图片,如图示。,