用VB6.0 ADO Data控件和多窗体对Access 2003数据库处理

发布时间:   来源:文档文库   
字号:
维普资讯http://www.cqvip.com
用VB 6.0 ADO Data控件和多窗体 
茆 颖 
(成都市建设学校, 四川成都61 0066) 

要:本文通过一个学籍管理实例,使用、,B 6.0的ADO Data控件和多窗体技术对ACCESS 2005数据库表中的记录添加、缡辑、显示、删除 
处理。程序中没有用SQL语句,所以程序的设计和调试比较方便。 
关键词:AD(ActiveX Data Object)控件;多窗体 
To Realze he Technology of MultiWmdows or Access 2003 Database System 
By Visual Basic 6.0 ADO Data Controls 
MaoYing 
(Chengdu Construct School,Chengdu 6  0066) 
Abstract:The artcle tels how to deal with the records in the tables ofAccess Database 2003 by the case of management n one’s status as student,to use ADO Data control and technology of muli—windows.In this way,it s comparatively convenient to design and debug 
program without using SOL sentence. 
Key word:ADO(AcveX Dat Objct)contols;mulwindows 
作者在开发一个学籍管理系统中,程序操作界面不能 

Access 2003作为后台数据库。 
ADO是数据库访问接口技术,通过创建几个对象就可以 连接数据源、获取所需数据和数据访问后的保存操作。 ADO对象模型定义了一个可编程的分层对象集合,主要由三 个对象成员Connection、Command和Recordset对象,以及 
目了然的将一个班级中每一位学生的几十项数据显示在 个界面上,编辑、处理记录时也不方便,例如: 

DataGrid控件。作者利用vB 6.0的ADO Data控件结合多窗 体技术处理Access数据库中表的记录,实现了学籍信息处 理。用主窗体显示某个专业的所有班级和每个班级学生的 大致情况,当在主窗体上用户选定某一位学生时,就可在 
几个集合对象Errors、Parameters和Fi el ds等组成。 
其它窗体编辑、浏览该学生记录以及添加新的记录。 
ADO Data控件可以执行大部份数据库访问操作,但并 不显示数据内容。ADO Data控件与“数据觉察”控件 DataList、DataCombo和DataGrid控件结合使用,当ADO 
Data控件中当前记录发生变化时,“数据觉察”控件的内 容会随之发生变化。程序员可以设计程序显示出变化后的 情况,对数据库中表记录进行处理。 
本实例中,对学生数据库中的每一个表文件绑定一个 ADO Data控件,其它窗体上控件与ADO Data控件 Recordset记录集的Fields字段绑定。 
实现技术 
图l程序运行时的FrmMa1n主窗体界面 
本实例中,为了减少数据冗余,实现关系的规范化。 
对于上述问题的处理,以VB 6.0作为前台开发工具, 
收稿日期:07—01—25修回日期:07—03—15 
数据库Student.mdb中有三个表文件:学籍表、专业代码表 
作者简介:茆颖(1956一),男,上海人,大学本科,讲师。主要研究方向:数据库应用技术、计算机语言、计算机网络。 
35 

维普资讯http://www.cqvip.com
中国西部科技 2007・03 
和专业班级表。本文只涉及学籍表,故专业代码表和专业 
Commandl(3) 删除记录 同上橙色 
班级表略。 
(1)学籍表结构如下: 
Command1(4) 返回上级窗体同上橙色 
Comand1(5) 学生详细信息同上橙色 
学籍(学号/Char(10)Primary Key,姓名/Char (10),性别/Char(2),民族/Char(6),班级名 
/Numeric/长整型, 
出生年月/Date,…...以下略) 
(2)在主窗体上添 ̄UADO Data控件和设置属性 
①在VB 6.0默认情况下, “工具箱”是没有ADO Data控件的,需选择“工程”菜单中的“部件”命令,打 开“部件”属性对话框,在控件列表框中,选择Microsoft ADO Data ControlS 6.0(OLEDB), 单击“确定”按 钮,在“工具箱”上可以看 ̄UADO Data控件。 
②在主窗体上添加三个ADO Data控件, 对应着 Students.mdb数据库中的三个表文件: 
Adodc1控件对应着的”专业代码”表文件: Adodc2控件对应着的”专业一班级”表文件: Adodc3控件对应着的”学籍”表文件。 ③本文只涉及设置主窗体^D0 a= 
禹性,另两个略。 
属性 
说明 
Connect1 onStr1 ng 
Proy1der=Microsoft.Jet.OLED 
B.4.0:Data Source=E:\学籍管理 
Student.mdb;Pers1 St Secur1ty Info=Fa1 se 
CorsorType 2一adODenDynam1C 
RecordSource select from学籍order by1学号 V1 S1b1e 
Fa1se(Adodc3控件运行时不可见) 
表1设置AD0 Data3控件属性 
(3)在FrmMain主窗体上添加3个“数据觉察控件” DataList(数据绑定列表框控件)、DataCombo(数据绑定 组合框控件)和DataGrid(数据栅格列表框控件),并配 
置属性。 
在VB 6.0默认情况下“工具箱”没有“数据觉察控 件”,选择“工程”菜单中的“部件”命令,打开“部 件”属性对话框,在控件列表框中,选择Microsoft 
DataList Control S 6.0(OLEDB)和Microsoft DataGrid 
ControlS 6.0(OLEDB),单击“确定”按钮后,在“工具 
箱’,上可 
眦i 控件、D。圜和 
DataGrid 
控件。 
②设置DataGridl属性表2: 
属性 属性值 (名称)Name DataGridl Caption 
学生信息简表 
DataRouce 
Adodc3 
③在主窗体FrmMain有一个控件数组的六个命令,属 性设置: 
表3设置主窗体上控件数组中的六个命令按钮属性 控件数组变量 Caption Style 背景色 Commandi(0) 添加记录2-Graphical 
橙色 Comand1(1) 插入记录同上 
橙色 
Comandl(2) 修改记录同上 橙色 
36 
图3设计阶段的FrmMa1 n主窗体 
图4 frmStuEd1t学生信息编辑 
在图3上单击修改记录按钮进入图4。 
为了程序便于维护,让frmMain主窗体上的Adodc3控件 的Recordset记录集的fields域序号与反映学籍表各个字段 的文本框数组元素序号一致(包括添加学生记录窗体、学 
生信息浏览窗体和学生信息编辑窗体图4), 情况如下: 
编号 字段 数据类型 Adodc3控件 添加、浏览和编 名称 
及宽度 Recordset中 辑窗体上文本 
的f1e1ds序号 框数组的序号 
 学号 
CharllO Fields(0) Frmltxt(0) 
2 姓名 CharllO Fields(1) Frmltxt(1)  性别 Char/2 Fields(2) Frmltxt(2) 4 民族 Char/6 Fields(3) Frmltxt(3) 5 籍贯 Char/6 Fields(4) Frmltxt(4) 6 班级名 L0r Integer Fields(5) 
rmltxt(5)  出生年月 Date/Time 
Fields(6) 
Frmltxt(6) 8 入学时间 Date/Tim Fields(7) Frmltxt(7) 9 政治面貌 CharllO Fields(8) Frmltxt(8) 10 专业 Char/2 
Fields(9) 
Frmltxt(9) 
11 身份证号 Char/25 
Fields(10) 
Frmltxt(10) 
12 学生证号 Char/2 Fields(11) Frmltxt(11) 13 毕业否 Bool ̄n 
Fields(12) 
Frmltxt(12) 
14 家庭住址 Char/50 Fields [13) 
Frmltxt(13) 
15 通信地址 Char/50 Fields .14) Frmltxt(14) 6 邮政编码 Char/6 Fields 5) Fm1txt(15) 7 照片 0LE对象 Fields .16) Frmltxt(16) 8 在校职务 Char/20 Fields(17) Frmltxt(17) 9 备注 Memoy Fields 18) Frmltxt(18) 
表4 Adodc3控件Recordset中的fields序号 

维普资讯http://www.cqvip.com
2各程序模块主要程序代码 
(1)frmMain.frm主窗体加载事件代码。 
Private Sub Form
Adodc3.Recordset.Fields(i) 
E1se 
FrmStuEdit.frmlTxt(i)=~ 
End If Next i 
Load() ’主窗体加载 
DataCombo1.Text=Adode1.Recordset.Fields(1)一 
’DataCombol显示专业代码表文件 专业名称 字段值 
DataCombol__Click(0) 
由于学籍表中的第1 6个字段是“照片”(OLE对 
象),调用Showlmage()函数,取出图像块文件。本实例 
FrmMain.Label3.Caption= 全部学生个人信息 + Chr(13)+ (当用户选定左边 的专业和相应的班级 后,就显示出选定班级的学生信息) 
未涉及,详见参考文献3 
Ca1 l 
ShowImageFrmStuEdit.Image1, 
FrmMai n.Adodc3) 
DataGri d1.A1 lowUpdate=Fal se End Sub 
(2)frmMian主窗体上六个命令控件数组事件代码 
Private Sub Command1 Click(Index As Integer) 
Select Case Index 
Case 0 添加新记录 
DataGrid1.A1lowAddNew=True FrmMain.Adodc3.Recordset.AddNew 
Fr ̄ppend.Show l 
Case 1 插入记录略,与Cas O添加新记录相同 
Case 2 进入学生信息编辑 
For j=0 To 5:Comandl(J).Enabled=False: Next J 
将frmMa主窗体上Addc3控件Eec0t记录集选定的当 前记录字段(Fids)值依次赋给frmSuEdit(学生信息编辑窗 
体)中相应的文本框显示,以便编辑 
F r m S t u E d i t.f r m 1 T x t0) = 
Adodc3.Recordset.Fields(0) 
FrmStuEdit.frmlTxt(0).setfocus 
‘定义焦点 
For i=1 To 11 
If Adodc3.Recordset.Fields(i) <>~
Then 
FrmStuEdi t.frmlTxt(i)= 
FrmMain.Adodc3.Recordset.Fields(i) 
E1se 
FrmStuEdit.frmlTxt(i)=~ End If Next i 
由于学籍表中的第1 3个字段是“毕业否”(Booea 型),需单独处理 
If Adodc3.Recordset.Fje】ds(】2) 
True 
Then 
F r m S t u E d i t.0 P t i o n 1.V a 1 u e 
Adodc3.Recordset.Fields(12) 
E1se 
FrmStuEdit.Option2.Value= 
Not Adodc3.Recordset.Fields(12) End If 
For i=13 To 15 
If Adodc3.Recordset.Fields(i) <>~ 
Then 
FrmStuEdi t.frmlTxt(i) = 
For i=17 To 18 
F rm St uE di t.f rm1 T xt
i) 
=Adodc3.Recordset.Fields(i) 
Next i 
FrmStuEdi t.Show 1 
Case 3 进入删除学生记录分支 
ys¥=MsgBox( 请确认是否删除 + 
Adodc3.Recordset.Fields(1)+ 同学? 
一 
vb0KCancel+vbExclamation+ 
vbDefaultButton1, 确认删除当前记录 ) 
If ys¥=vbOK Then 
Adodc3.Recordset.Delete:MsgBox 数据己 
删除! 
End If 
FrmMain.Adodc3.Recordset.Update Case 4: Unload Me 
Case 5 学生信息浏览 
DataGrid1.A1 lowUpdate=flase 
For j=0 To 5:Comandl(J).Enabled=False: 
Next j 
调用标准模块中的"ig录显示模块.as”。详见 
后面EecoPoit_Clk() 事件过程 
RecordPoi nt_Cl ick:FrmStuBrowse.Show 1 
End Select End Sub 
(3)在图4OO,利用FrmStuEdit学生信息编辑窗体, 由用户修改学籍表中的字段值后再赋给FrmMain主窗体的 Adodc3控Recordset记Files字 frmStuEdit编辑窗体的事件代码: 
@Private Sub CmdOK_Click() 
Wi th FrmMain.Adodc3.Recordset 

Fields(0)=FrmStuEdit.frmlTxt(0) 
Fields(1)=FrmStuEdit.frmlTxt(1) 





。 
民族、学生证号和班级等 
字段类同,略;出生年月,入学时间需单独处理; 
End With 
 “毕业否”为Boan型,单独处理 
If FrmStuEdit.Option1.Value=True Then 
FrmMain.Adodc3.Recordset.Fields(12)=True 
E】se 
31 

本文来源:https://www.2haoxitong.net/k/doc/a2c325076edb6f1afe001f03.html

《用VB6.0 ADO Data控件和多窗体对Access 2003数据库处理.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式