访问 ACCESS
CGS VB 数据库编程
2008/1
ACCESS 数据库|小二黑
数据库编程
2008/12/15
VB 数据库编程
2008
2
VB 数据库编程
时间:2008-12-15 来源:本站专稿 作者:小二黑
序
vb 数据库操作是初学者普遍感到头疼的地方,因为现有的 vb教材和资料中的数据库操
作这部分,多是泛泛而谈或是一带而过。因此就想组织一个包括添加、修改、删除这些基本
功能的数据库操作实例供大家参考。
久已未用 vb6,机器里已经装上了 VS 2008,再改回 vb6,感觉实在是怪怪的。还好有
朋友帮忙,感谢“小二黑”网友供稿!
也许有朋友觉得 vb6 版本已经很低了,做这个事还有意义吗?其实对微软来说,vb5 是
vb,vb6 是 vb,VS.net 中的 vb.net 也是 vb;而对于许多初学者来说,vb只是 vb6,为什么
这么说呢?因为对于许多不了解编程的朋友来说,似乎 vb 就是编程的代名词,学编程的第
一反应就是学 vb,而民间的电脑培训学校开设的多数都是 vb6 课程,那么他们学到的都是
vb6;同时计算机等级考试也可以用 vb6 来过级,有相当部分的朋友是为了考证而学编程的,
你相信他会放着简单易学的 vb6 不学,而去研究庞大的.NET 吗?
因此我觉得这个事还是值得去做的,所以就有了下面这几篇文章。
祝朋友们学习愉快!
编写一个小型的信息管理系统
受委托为编程入门网做一个简单的 vb 操作数据库的实例,来演示一下如何用 vb向数据
库中添加、修改、删除
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
这些操作。我觉得自己是比较菜的,几年来别人都在进步,只有
我还在原地踏步。不过没有办法,我们这一圈人里现在只有我机器上还有 vb6,勉为其难,
只有尝试一下了。如果我写的这点幼稚的东西能为想要了解 vb 数据库操作的朋友提供哪怕
是一丁点儿的参考和帮助,将是我最为高兴的事情,同时也希望高手不要见笑。
我做的这个实例名为“编程入门网网址管理系统”,算是一个小型的信息管理系统吧。
该系统后台使用的是 Access 数据库,程序中使用 ADO 代码链接的形式连接 Access。该系统
具有向数据库中添加、修改、删除记录的功能,进行某项操作后能够实时刷新显示数据。并
在程序中加了相应的代码对输入的数据进行合法性校验,以避免输入错误的数据造成程序运
VB 数据库编程
2008
3
行不正常,程序运行时各个操作及退出系统时均有友好的提示框请用户确认。所有代码均在
Windows 2003+Vusual Basic 6.0 环境下调试通过。
系统运行时如下图:
准备数据库
我用的是 Access 2003,因为需要讲解的仅仅是数据的添加、修改及删除,因此单数
据库、单表就够了。如果以后您要编写更复杂一些的信息管理系统而涉及到多表操作,则您
还需要补充一些关系数据库方面的知识,比如实体、一对一联系、一对多联系等等;此外,
对 sql 语言也需要有所了解。具体您可以参考:数据库基础知识 ABC。
首先,在“我的电脑”的 e盘新建一个名为 vb文件夹,先打开 Access,新建一个名为
Access_db 的数据库(Access 数据库文件的扩展名是.mdb),保存到刚才建立的文件夹中,
则以后在程序中调用数据源的位置为 E:\vb\Access_db.mdb。
然后在Access_db.mdb中建立一个名为wzdz的表(wzdz是“网站地址”的首字母缩写),
然后在 wzdz 表中添加网站名称、网站地址及网站描述三个字段,三个字段的属性是相同的,
如下:
▲数据类型:文本。
▲字段大小:50
▲有效性规则:无。
▲必填字段:否
▲允许空字符串:否
VB 数据库编程
2008
4
▲索引:无
“编号”这个字段使用的是 Access 的自动编号,并将其作为主键。也就是说,您在表
中设置以上三个字段即可,设置完毕保存表时,按 Access 的提示添加主键,Access 会自动
为您搞定。具体操作您可以参考:vb 神童教程(续)--vb 连接 Access 数据库实例
这样在建立了数据库及表结构之后,即使是调用没有记录的空库,系统也可以无差错运
行,可以在运行时通过“添加记录”按钮向数据库中添加记录。不过由于数据库是空的,系
统第一次运行时数据显示控件没有数据可显示,显得空荡荡的,不太美观哦。为了方便起见,
我们在 Access 中给 wzdz 表中预先添加两条初始记录:
编
号
网站名称 网站地址 网站描述
1
编程入门
网
http://bianceng.cn
各种编程文档、电脑教程及软件应用技巧,您的电脑技
术加油站!
2
健康生活
网
www.health163.org 您的健康指南
添加的方法很简单:在 Access 的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
器中直接双击 wzdz 表名,在出来的窗口中添加即
可。添加时注意:因为我们使用的是 Access 的自动编号做主键,所以在添加时不用理“编
号”这个字段,直接添加后三个字段即可。
下一步的工作,是设计系统的界面及设置各个对象的属性。
本系统是一个很简单的数据库操作实例,能够对数据库的添加、修改及删除记录这几个基本
的操作。系统使用数据显示控件MSHFlexGrid显示数据库中的记录,使用数据链接控件Adodc
链接数据库作为 MSHFlexGrid 的数据源,使用文本框来接收系统运行时用户输入的数据。
步骤如下:
一、启动 vb6,新建一个
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
exe 工程,并将工程中的 form1 的 caption 属性设置为“编
程入门网网址管理系统”,width 属性值设为 7950,height 属性值设为 4620。
二、向窗体中添加一个 Adodc 控件。如果在工具箱中找不到 Adodc 控件,可以右击工具
箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“Microsoft
ADO Data Control6.0(OLEDB)”。
在 VB 的属性窗口我们对 Adodc 控件的三个个属性值进行编辑,其余属性值使用默认的
即可:
VB 数据库编程
2008
5
1、ConnectionString 属性值设为:Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\vb\Access_db.mdb;Persist Security Info=False
这个属性设置了连接 Access_db.mdb 这个数据库。
2、RecordSourc 属性值设为:select * from wzdz
这个属性值中的 sql 语句的作用是查询出 wzdz 表中的所有记录。
3、Visible 属性值设为 False,作用是使其在运行时不可见。
三、向窗体添加一个 MSHFlexGrid 控件,如果工具箱中没有 MSHFlexGrid 控件,可以右
击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中
“Microsoft Hierarchical FlexGrid Control 6.0 ”。然后在 vb的属性窗口中将
MSHFlexGrid 控件的名称修改为 MS1,如下图:
然后对 MSHFlexGrid 控件进行如下设置:
1、DataSource 属性:在 vb 的属性窗口中将其值设为 Adodc1,即使用 Adodc 控件作为
其数据源。
2、BackColorBkg 属性:在 vb的属性窗口中将其值设为&H00FFE0E0&,这是设置的
MSHFlexGrid 控件的底色。
3、BackColorFixed 属性:在 vb 的属性窗口中将其值设为&H00C0FFFF&,这是设置的
MSHFlexGrid 控件的显示标题的底色。
4、width 属性:在 vb 的属性窗口中将其值设为 7695.
5、Height 属性:在 vb 的属性窗口中将其值设为 2175.
6、右击 MSHFlexGrid 控件,在弹出的菜单中选“属性”,在弹出的“属性页”对话框
的在“通用”选项卡中修改行为 4,修改列为 4,修改固定行为 0,修改固定列为 0。如果数
据链接正常,在“属性页”对话框的“带区”选项卡中可以看到列标题和列名称已经设置了,
这里注意应该将“带区”选项卡中的“列标头”选项勾选上,否则运行时无法显示列标题,
如下图。“属性页”对话框的其它部分使用默认值即可。
VB 数据库编程
2008
6
四、向窗体中添加 4个 Label 控件(标签),在 vb的属性窗口为它们设置以下属性:
1、caption 属性:分别设置为网站名称、网站地址、网站描述及编号。
2、Alignment 属性:均设为“2-Center”。
3、AutoSize 属性:均设为 True。
五、向窗体中添加 4个 TextBox 控件(文本框),并调整它们的位置成一排与 4个标签
相对应,即:网站名称→Text1,网站地址→Text2,网站描述→Text3,编号→Text4。
六、向窗体中添加 4个 CommandButton 控件(命令按钮),将它们的 caption 属性分别
设置为“添加记录”、“修改记录”、“删除记录”和“退出系统”,并调整它们的位置成
一排,放在文本框的下方。
七、在两排文本框和命令按钮中间,添加一个 Line 控件,适当拖动其两端的控制点将
长短调整至适当,并将其 BorderColor 属性性设为&H00C00000&,作用是把文本框和命令按
钮隔开,这样在视觉上似乎能好看些。
八、所有控件设置完毕后,界面如下图所示:
VB 数据库编程
2008
7
下一步的工作,是为对象添加事件代码。
为对象添加事件代码
一、form1 的 load 事件代码:
Private Sub Form_Load()
Form1.MS1.ColWidth(0) = 600
Form1.MS1.ColWidth(1) = 1000
Form1.MS1.ColWidth(2) = 2300
Form1.MS1.ColWidth(3) = 4000
Form1.Text1.Text = ""
Form1.Text2.Text = ""
Form1.Text3.Text = ""
Form1.Text4.Text = ""
End Sub
主要是在系统初始化时设置 MSHFlexGrid 控件的列宽,并将文本框置空。
二、“添加记录”按钮(command1)的 click 事件代码:
Private Sub Command1_Click()
Dim sc As Integer
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then
'即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据
'由于系统数据库设计为“编号”字段采用的是 Access 的自动编号
'因此在添加记录时不接收编号的数据,由 Access 自动加编号
MsgBox ("请输入完整的网站信息")
Else
sc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")
VB 数据库编程
2008
8
If sc = 1 Then
'运行时如果用户点击的是 MsgBox 提示框的“确定”按钮,返回值是 1
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password="
conn.Open Str1 & Str2 & Str3
strSQL = "select * from wzdz"
rs.Open strSQL, conn, 3, 3
rs.AddNew
rs!网站名称 = Text1.Text
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text
rs.Update
rs.Close
conn.Close
MsgBox ("添加记录成功!")
Adodc1.Refresh
'刷新数据源,MSHFlexGrid 控件会实时刷新显示数据
End If
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End If
End Sub
三、“修改记录”按钮(command2)的 click 事件代码:
Private Sub Command2_Click()
If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then
'编号字段是 Access 的自动编号,为自然数
'因此对 text4 的内容进行校验,如果不是数值或为 0 则跳出 sub 过程
MsgBox "记录号是大于 0 的自然数,请输入正确的编号!"
Exit Sub
End If
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then
'对三个文本框的内容进行校验,不接收空值
MsgBox "请输入完整的网站信息!"
Exit Sub
End If
VB 数据库编程
2008
9
Dim sc As Integer
sc = MsgBox("确实修改这条记录吗?", vbOKCancel, "提示信息")
If sc = 1 Then
'运行时如果用户点击的是 MsgBox 提示框的“确定”按钮,返回值是 1
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password="
conn.Open Str1 & Str2 & Str3
strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & ""
rs.Open strSQL, conn, 3, 3
If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果 rs!编号 = Val(Text4.Text)说明数据库中有此记录,
'才会修改其它三个字段的内容
'否则给出“不存在此记录”的提示信息并关闭数据连接
rs!网站名称 = Text1.Text
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text
rs.Update
rs.Close
conn.Close
MsgBox ("修改记录成功!")
Adodc1.Refresh '刷新数据源,MSHFlexGrid 控件会实时刷新显示数据
Else
MsgBox ("不存在此记录!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
rs.Close
conn.Close
Exit Sub
End If
End If
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
VB 数据库编程
2008
10
Text4.Text = ""
End Sub
四、“删除记录”按钮(command3)的 click 事件代码:
Private Sub Command3_Click()
If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then
'编号字段是 Access 的自动编号,为自然数
'因此对 text4 的内容进行校验,如果不是数值或为 0 则跳出 sub 过程
MsgBox "编号是大于 0 的自然数,请输入正确的编号!"
Exit Sub
End If
Dim sc As Integer
sc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")
If sc = 1 Then
'运行时如果用户点击的是 MsgBox 提示框的“确定”按钮,返回值是 1
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password="
conn.Open Str1 & Str2 & Str3
strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & ""
rs.Open strSQL, conn, 3, 3
If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果 rs!编号 = Val(Text4.Text)说明数据库中有此记录并进行删除操作
'否则给“不存在此记录”的提示信息并关闭数据连接
rs.Delete
rs.Close
conn.Close
MsgBox ("删除记录成功!")
Adodc1.Refresh '刷新数据源,MSHFlexGrid 控件会实时刷新显示数据
Else
MsgBox ("不存在此记录!")
Text4.Text = ""
rs.Close
conn.Close
Exit Sub
End If
End If
'以下四条语句的作用是在操作完成后将文本框置空
VB 数据库编程
2008
11
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
五、“退出系统”按钮(command4)的 click 事件代码:
Private Sub Command4_Click()
Dim sc As Integer
sc = MsgBox("确实要退出系统吗?", vbOKCancel, "提示信息")
If sc = 1 Then
'运行时如果用户点击的是 MsgBox 提示框的“确定”按钮,返回值是 1
End
End If
End Sub
六、添加完事件代码之后,我们这个实例至此完成,运行一下吧!
ODBC 数据源简介
ODBC(开放式数据库连接)是一种应用程序的接口(API)。这种接口提供了独立于任
何的数据管理系统编写应用程序的能力。OCBC 通过 ODBC 驱动程序提供了对不同的数据库供
应商的一组应用程序接口来给特殊的数据库管理系统(DBMS)。用户的应用程序使用这组
API 来调度 ODBC 驱动程序。然后驱动程序通过 SQL 语句同 DBMS 发生联系。
下面我们开始介绍 ODBC 数据源。在“我的电脑”中打开“控制面板”中的“管理工
具”,在窗口中即可见 ODBC 数据源图标。
双击打开 ODBC 数据源管理器,如下图所示:
VB 数据库编程
2008
12
ODBC 数据源管理器为配置、添加、删除各种不同的数据源名称提供了最为简洁的方法。
它使得用户可以轻松地完成数据源的配置工作,用户也可以删除原有的 DSN(数据源名称),
或对先前配置的数据源进行修改。ODBC 数据源管理器的具体功能如下:
▲用户 DSN:ODBC 用户数据源存储了如何与指定数据提供者连接的信息。用户数据源只
对当前的用户可见,而且只能应用在本机上。
▲系统 DSN:ODBC 系统数据源存储了如何与指定数据提供者连接的信息。系统数据源对
当前机器上的所有用户可见。
▲文件 DSN:ODBC 文件数据源允许用户连接数据提供者。文件 DSN 可以由安装了相同驱
动程序的用户共享。
▲驱动程序:ODBC 驱动程序允许那些支持 ODBC 的程序通过 ODBC 数据源获取信息。如
果安装新的驱动程序,要使用其安装程序。
▲跟踪:ODBC 跟踪允许创建调用 ODBC 驱动程序的日志,以供技术人员查看;也可以辅
助调试应用程序。Visual Studio 跟踪启动 Microsoft Visual Studio 的 ODBC 跟踪。
▲连接池:连接池允许应用程序重新打开连接句柄,此操作将往返过程存入服务器。
配置 Access 数据源
VB 数据库编程
2008
13
(1)打开控制面板中的 ODBC 数据源管理器,在“用户 DSN”(即“用户数据源”)中选
择“MS Access Database”选项,可心删除或配置一个已有的用户数据,这里我们将要添加
一个数据源。
(2)单击添加按钮,系统将准备在 MS Access Database 下添加一个用户数据源,为了安
装数据源,会弹出创建新数据源窗口,如下图:
(3)在创建新数据源窗口中,选择"Microsoft Access Driver"来安装数据源。
(4)单击“完成”按钮,进入 ODBC Microsoft Access 安装窗口,如下图:
▲在“数据源名”项中键入数据源的名称,这里我们键入“Access_db”作为数据源名。
VB 数据库编程
2008
14
▲在“描述”项中键入对数据源的描述,此处内容可选,这里我们键入“This is Access
database temp”。
▲在“数据库”项中可以选取、创建、修复或者压缩数据库。这里我们选择“选取”按
钮来选取相应的 Access 数据库。如果用户没有自己建立的 Access 数据库,那么用户可以到
安装 Access 的目录下面选取 Access 自带的数据库。注意:Access 数据库文件的扩展名
是.mdb。
▲最后,单击“确定”按钮。至此一个新的 Access 数据源已经添加完成,如下图:
说明:如果用户希望所创建的数据源名被本机中的多个用户所使用,请用户添加系统
DSN。在实际情况中,开发一个单机单用户的系统没有什么意义,所以一般都需要对系统 DSN
进行配置。系统 DSN 的添加过程同用户 DSN 添加过程类似。
配置 SQL Server 数据源
配置 SQL Server 数据源的步骤:
(1) 打开控制面板中的 ODBC 数据源管理器,单击“添加”按钮来添加一个数据源。
(2)单击添加按钮后,系统将准备添加一个用户数据源。为了安装数据源,会弹出创建
新数据源窗口,如下图所示。由于 VB 和 SQL Server 的系列性,所以即使用户没有安装 SQL
Server,在创建新数据源窗口中也列有 SQL Server 这一项。当然,这里的列表项只是起了
一个标识作用,如果用户尚未安装 SQL Server,请先安装后再进行以下的步骤。
VB 数据库编程
2008
15
(3)在上图选择“SQL Server”后,单击“完成”按钮,进入“创建新的数据源到 SQL
Server”窗口,如下图所示:
▲在“名称”项中键入新的数据源名,这里我们键入 SQL Server1 作为新数据源名称。
▲在“描述”项中键入对数据源的描述,此处可以不填。
▲在“服务器”项中键入想连接的 SQL Server 服务器。如果要连接的 SQL Server 是安
装在本机上,那么就从下拉框中选择“Local”,local 表示的是连接到本地的服务器。如
果要连接的 SQL Server 是安装在其它的服务器上,那么就应从下拉框中选取相应的选项。
VB 数据库编程
2008
16
如果从列表中选择服务器名称,则不需要更多的配置。如果输入一个不存在的服务器的名字
作为 SQL Client Configuration Utility 中的一项,可在向导的下一个屏幕上为新名字创
建一个服务器别名。
▲单击“完成”按钮完成新数据源的配置。单击“下一步”按钮进行下一步的配置工作。
▲在“SQL Server”应该如何验证登录标识号的真伪?”下面有两个单选项供用户选
择。
▲如果选定“使用用户输入登录标识号和密码的 SQL Server 验证”,请指定连接到 SQL
Server 时 SQL Server 驱动程序使用的登录标识号。这仅适用于确定服务器默认配置的连接,
而不适用于使用已创建数据源进行的后续连接。
▲如果选定“使用用户输入登录标识号和密码的 SQL Server 验证“,请指定连接到 SQL
Server 时 SQL Server 使用的密码。这只适用于确定服务器默认配置的连接,而不适用于使
用新数据源进行的后续连接。
(5)单击“下一步”按钮将进行连接的验证。如果正确,则连接成功;否则,系统会指
出具体的错误,用户应该重新验证输入的正确性。
VB 的 ADO 对象
ADO 简介
参考资料:
ADO 简介:http://bianceng.cn/VBjc/sjcz/sj2.htm
ado 对象模型:http://bianceng.cn/Programming/VB_NET/200705/1201.htm
ADO 是另一种用于开发访问 OLE DB 数据源应用程序的 API。有多种程序设计语言都支持
ADO,如 VB,VC++,VJ++等。ADO 提供了较为高级并容易被理解的访问 OLE DB 数据源的机制,
它结合了 DAO 和 RDO 的优点。并提供了 OLE DB 数据源的入口。OLE DB 是一种数据库体系结
构,它为企业网络提供了普遍的数据综合能力(从大型机到桌面上的数据,而不管数据的具
体类型是什么),与 ODBC 相比,OLE DB 在数据通道方面更具有普遍性和有效性,这是因为
它允许同建立在 COM 基础上的更多的数据类型联系和由于 ADO 是为开发客户机/服务器程序
而专门设计的。下图是典型的 ADO 应用程序的结构。
VB 数据库编程
2008
17
ADO 的特征如下:
▲支持成批更新.即对更新的多个记录进行缓冲,并同步传输到服务器。
▲支持所有类型的光标。包括只能前移型,关键值型以及动态和静态型。
▲支持服务器端的存储过程。这些过程可以大大提高应用程序的通用性。
▲支持返回多个记录集的查询。
▲支持查询目的。包括限制返回的记录的个数,激活返回记录的过滤和预先语句。
ADO 是由以下对象组成的:Command,Connect,Error,Field,Parameter 和 RecordSet。
下图给出了 ADO 对象的层次结构。除了 Error 和 Field 之外的所有 ADO 对象都是可以单独创
建的,而 Command,Error 和 Parameter 对象是可选的。
ADO 对象介绍
1.Connection 对象
详见 vb 神童教程(续)--vb adodb Connection 对象简介
Connection 对象封装了到数据源的连接而且允许使用 Execute()方法来执行 SQL 命令,
Execute()命令返回一个 RecordSet 对象。可使用 Connection 对象配置一个数据库的链接、
定义脱机等级、执行 SQL 命令并对 SQL 语句的执行进行控制和管理。下图显示了 Connection
对象同其它对象的关系。
VB 数据库编程
2008
18
2.Command 对象
Command 对象定义了将对数据源执行的指定命令。使用 Command 对象查询数据库并将查
询所得到的记录集返回给 RecordSet 对象,以便执行大量操作或处理数据库结构。Command
对象的主要功能主要有:
▲使用数据管理命令创建 RecordSet 对象,完成成批更新和使用数据定义命令修改数据
源结构。
▲打开到数据源的连接,指明一个命令,执行存储过程和创建语句。
▲与 Parameter 对象联合创建参数化的命令。应用程序可以往各参数集中添加参数,而
不需要数据提供者预先填充参数集。
3.Error 对象
Error 对象封装了从数据源返回的错误。如果 Error 对象可用,可使用它来获得错误描
述、错误代码、创建错误的对象、参考帮助文件和当前的 SQL 状态。Errors 集合中包含了
为响应涉及提供者的单个错误而创建的所有 Error 对象。任何涉及 ADO 对象的操作都可能产
生一个或多个提供者错误。产生错误时,可以将一个或多个 Error 对象置于 Connection 对
象的 Errors 集合中。其他 ADO 操作产生错误时,将会自动清空 Errors 集合,并且将新的
Error 对象置于 Errors 集合中。
4.Field 对象
Field 对象封装了 RecordSet 对象中的一列。可以这样说,一个 RecordSet 对象是由一
组 Field 对象组成的。可以使用 Field 对象来访问列的名称、列值、类型、精度、范围和列
的大小。Field 对象只能从 RecordSet 对象中来访问。
5.Parameter 对象
Parameter 对象封装了一个命令参数,此参数可以是输入型、输出型或者输入/输出型。
许多数据源提供者都支持参数化的命令。需要进行的操作在这些命令中只定义一次,但可以
使用变量(或参数)来改变命令的某些细节。例如,SQL SELECT 语句可以使用某个参数定
义 WHERE 子句的匹配条件,而使用另一个参数来定义 SORT BY 子句的列的名称。
6.RecordSet 对象
RecordSet 对象是 ADO 的核心,可以单独地创建。RecordSet 对象表示的是来自基本表
或命令执行结果的记录全集。任何时候,RecordSet 对象所指的当前记录均为集合内的单个
VB 数据库编程
2008
19
记录。在 RecordSet 对象中有一个默认的指针,用户程序可以通过这个默认指针的移动来访
问记录集中的单个记录。RecordSet 对象封装了一组可以访问列级数据的 Field 对象。
RecordSet 对象的方法:
1.AddNew 方法
AddNew方法为可更新的Recordset对象创建一个新记录.AddNew方法将添加一条新的空
记录,并且定位在该记录上,用户可以在被绑定的数据感知控件中输入修改数据.新增加的记
录的值为指定的默认值,如果没有指定值,则为 Null.例如: 输入完新记录后,要使用
I.1pdate方法才能将数据保存到数据库中,在使用Update方法前,数据库中的数据不会发生
改变,只有执行Update方法或通过Data控件移动当前记录时,记录才从缓冲区存储到数据库
文件中.使用 Update 方法后,新记录仍保持为当前记录.
Data1.Recordset.AddNew
2.Delete 方法
Delete 方法可将当前记录从记录集中删除.
3.Edit 方法
要编辑修改数据库的记录,首先使要编辑的记录成为当前记录,然后使用 Edit 方法修改
记录内容,使用 Edit 方法后,移动记录或者使用 Update 方法把数据存入到数据库中.
4.Move 方法
可以使用各种:Move 方法移动记录,使不同的记录成为当前记录.有 5种方法:
MoveFirst.移动到记录集的第一条记录.
Move[,ash 移动到记录集的最好一条记录.
MoveNext:移动到记录集的下一条记录.
MovePrevious:移动到记录集的上一条记录.
Move:可以使用 Move 方法向前或向后移动若干条记录.语法为:
Recordset.MoveNumRecords.Start
其中 NumRecords 设置向前或向后移动记录的行数,正数表示向后移动 NumRecords 行,
负数表示向前移动NumRecords行.Start参数为可选,表示基准位置,缺省时为当前记录的位
置.可以把当前记录集的 Bookmark 作为基准位置.
5.Find 和 Seek 方法
VB 数据库编程
2008
20
要查找一个符合条件的记录,在 Table 型的记录集中可以使用 Seek 方法,在其他类型的
记录集中可以使用 Find 方法.
共有 4种 Find方法:FindFirst,Find[,ast,FindNext和:FindPrevious方法.使用Seek
方法要用到索引,而且只能用于 Table 类型的记录集.
6.I_Ipdate 和 CancelIJpdate 方法
Update方法保存对Recordset对象的当前记录所做的更改.使用IJpdate方法可以保存
自从调用.AddNew 方法,或自从现有记录的任何字段值发生更改(使用 Edit 方法)之后,对
Recordset 对象的当前记录所作的所有更改.调用 LIpdate 方法后当前记录仍为当前状态.
如果希望取消对当前记录所做的所有更改或者放弃新添加的记录,则必须调用
CancelUpdate方法.调用CanceltJpdate时,更改缓存被重置为空,并使用原来的数据对被绑
定的数据感知控件进行刷新.
它们的语法为:
7.Close 方法
使用Close方法可以关闭:Recordset对象以便释放所有关联的系统资源.关闭对象并非
是将它从内存中删除,可以更改它的属性设置并且在此之后再次打开.
vb adodb Connection 对象简介
Connection 对象介绍
Connection 对象支持许多属性,可以利用这些属性来操作当前的连接状态或者获取一
些基本的 Connection 对象的信息.有一些属性是只读的,而另一些属性是可读写的.
1.Attributes 属性
Attributes 属性设置或返回一个整型值,它用来指示对象的一项或多项特性.对于
Connection 对象,Attributes 属性为读/写,并且其值可能为以下任意一个或多个
XactAttributeEnum 值的和(默认为零).
▲AdXactCommitRetaining:执行保留的提交,即通过自动调用 CommitTrans 启动新事
务。并非所有提供者都支持该常量。
▲AdXactAbortRetaining:执行保留的中上,即通过自动调用 RollbackTrans 启动新事
务。并非所有提供者都支持该常量。
2.CommandTimeout 属性
VB 数据库编程
2008
21
CommandTimeout 属性设置或返回长整型值,该值指示等待命令执行的时间(单位为秒)。
默许值为 30,指示在终止尝试和产生错误之前执行命令期间需要等待的时间。使用
Connection 对象或 Command 上的 CommandTimeout 属性,允许由于网络拥塞或服务器负载过
重产生的延迟而取消 Execute 方法调用。如果在 CommandTimeout 属性中设置的时间间隔内
没有完成命令执行,将产生错误,然后 ADO 将取消该命令。如果将该属性设置为零,ADO 将
无限期等待直到命令执行完毕。
3.ConnectionString 属性
ConnectionString 属性设置或返回字符串值,这个字符串值包含用来建立到数据源的
连接的信息.使用 ConnectionString 属性,通过传递包含一系列由分号分隔的
argument=value 语句的详细连接字符串可指定数据源。ADO 支持 ConnectionString 属性的
四个参数,任何其他参数将直接传递到提供者而不经过 ADO 处理。
▲Provider 参数:指定用来连接的提供者名称。
▲File Name 参数:指定包含预先设置连接信息的特定提供者的文件名称。
▲Remote Provider 参数:指定打开客户端连接时使用的提供者名称。
▲Remote Server 参数:指定打开客户端连接时使用的服务器的路径名称。
例:使用 Connection 对象的 ConnectionString 属性的示例代码
Public Sub ConnectionString_Example()
Dim connection1 As ADODB.Connection
Dim connection2 As ADODB.Connection
Dim connection3 As ADODB.connection
Dim connection4 As ADODB.Connection
'不使用数据源名(DSN)打开连接
Set connection1=New ADODB.Connection
connection1.ConnectionString="driver={SQL Server};"&_
"server=Myserver;uid=sa;pwd=password;database=pubs"
connection1.ConnectionTimeout=30
connection1.Open
'使用 DSN 和 ODBC 标记打开连接。
Set connection2=New ADODB.Connection
connection2.ConnectionString="DSN=Pubs;UID=sa;PWD=password;"
connection2.Open
'使用 DSN 和 OLE DB 标记打开连接。
Set connection3=New ADODB.Connection
connection3.ConnectionString="Data Source=Pubs;User ID=sa;Password=password;"
connection3.Open
'使用 DSN 和单个参数而非连接字符串打开连接。
VB 数据库编程
2008
22
Set connection4=New ADODB.Connection
connection4.Open "Pubs","sa","pwd"
End Sub
注意:如果没有复选“引用”对话框中的 Data Access Object,程序会出错。在上面
的程序段中,先定义了 4个 Connection 对象的变量。这 4个变量分别对应于 4种不同的连
接方式。语句 Set connection1=New ADODB.Connection 是创建一个新的 Connection 对象,
然后再调用 Connection 对象的 Open 方法来打开数据库连接。
4.ConnectionTimeout 属性
ConnectionTimeout 属性设置或返回指示等待连接打开的时间的长整型值(单位为秒)。
其默认值为 15,指示在终止尝试和产生错误前建立连接期间所等待的时间。如果由于网络
拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用 Connection 对象的
ConnectionTimeout 属性。如果打开连接前所经过的时间超过 ConnectionTimeout 属性上设
置的时间,将产生错误并且 ADO 将取消该尝试。如果将该属性设置为零,ADO 将无限等待直
到连接打开。
5.DefaultDatabase 属性
DefaultDatabase 属性可设置或返回指定 Connection 对象上默认数据库的名称。
例:使用 Connection 对象的 DefaultDababase 属性的示例代码。
Public Sub DefaultDatabase_Example()
Dim connection1 As ADODB.Connection
Set connection1=New ADODB.Connection
connection1.ConnectionString="driver={SQL Server};"&_
"server=Myserver;uid=sa;pwd=password"
cnn1.Open
cnn1.DefaultDatabase="pubs"
End Sub
6.IsolationLevel 属性
IsolationLevel 属性指出 Connection 对象如何处理对象。
7.Mode 属性
Mode 属性设置或返回以下某个 ConnectModeEnum 的值,指示用于更改在 Connection 中
的数据的可用权限。
▲AdModeUnknown:默认值。表明权限尚未设置或无法确定。
▲AdModeRead:表明权限为只读。
▲AdModeWrite:表明权限为只写。
VB 数据库编程
2008
23
▲AdModeReadWrite:表明权限为读/写。
▲AdModeShareDenyRead:防止其他用户使用读权限打开连接。
▲AdModeShareDenyWrite:防止其他用户使用写权限打开连接。
▲AdModeShareExclusive:防止其他用户打开连接。
▲AdModeShareDenyNone:防止其他用户使用任何权限打开连接。
8.Provider 属性
Provider 属性指出当前数据提供者的名字,或者是使用 Open()方法时没有指定名字的
情况下所使用的提供者名。但是,调用 Open 方法时如果在多处指定提供者可能会产生无法
预料的后果。如果没有指定提供者,该属性将默认为 MSDASQL(Microsoft OLE DB Provider
for ODBC)。
例:使用 Connection 对象的 Provider 属性的示例代码。
Public Sub Provider_Example()
Dim connection1 As ADODB.Connection
Set connection1=New ADODB.Connection
connection1.Provider="Microsoft.Jet.OLEDB.3.51"
connection1.Open"C:\samples\northwind.mdb","admin",""
End Sub
9.State 属性
State 属性对所有可应用对象都可用,它用来说明其对象状态是打开或关闭的。可以随
时使用 State 属性来确定指定对象的当前状态。该属性是只读的,并返回下列常量之一的长
整型值。
▲AdStateClosed:默认值,指示对象是关闭的。
▲AdStateOpen:指示对象是打开的。
▲AdStateConnecting:指示 Recordset 对象正在连接。
▲AdStateExecuting:指示 Recordset 对象正