VB教程.docx
《VB教程.docx》由会员分享,可在线阅读,更多相关《VB教程.docx(35页珍藏版)》请在冰豆网上搜索。
![VB教程.docx](https://file1.bdocx.com/fileroot1/2023-1/31/da3efff9-ac73-4bb6-a606-1ef21138b18d/da3efff9-ac73-4bb6-a606-1ef21138b18d1.gif)
VB教程
VB教程
2008-12-15编程入门网
作者:
小二黑
序
VB数据库操作是初学者普遍感到头疼的地方,因为现有的VB教材和资料中的数据库操作这部分,多是泛泛而谈或是一带而过。
因此就想组织一个包括添加、修改、删除这些基本功能的数据库操作实例供大家参考。
久已未用VB6,机器里已经装上了VS2008,再改回VB6,感觉实在是怪怪的。
还好有朋友帮忙。
也许有朋友觉得vb6版本已经很低了,做这个事还有意义吗?
其实对微软来说,VB5是VB,VB6是VB,VS.net中的VB.net也是VB;而对于许多初学者来说,VB只是VB6,为什么这么说呢?
因为对于许多不了解编程的朋友来说,似乎VB就是编程的代名词,学编程的第一反应就是学VB,而民间的电脑培训学校开设的多数都是VB6课程,那么他们学到的都是VB6;同时计算机等级考试也可以用VB6来过级,有相当部分的朋友是为了考证而学编程的,你相信他会放着简单易学的VB6不学,而去研究庞大的.net吗?
因此我觉得这个事还是值得去做的。
祝朋友们学习愉快!
第一部分:
VB数据库操作实例
VB神童教程--编写一个小型的信息管理系统
VB神童教程--准备数据库
VB神童教程--设计系统的界面及对象的属性
VB神童教程--为对象添加事件代码
第二部分:
补充内容
VB神童教程--ODBC数据源简介
VB神童教程--配置Access数据源
VB神童教程---配置SQLServer数据源
VB神童教程--VB的ADO对象
VB神童教程--VBadodbConnection对象简介
VB神童教程--VB连接Access数据库实例
VB神童教程--使用ADOData控件连接Access的简单实例
附录一:
编写一个小型的信息管理系统
受委托为编程入门网做一个简单的VB操作数据库的实例,来演示一下如何用VB向数据库中添加、修改、删除记录这些操作。
我觉得自己是比较菜的,几年来别人都在进步,只有我还在原地踏步。
不过没有办法,我们这一圈人里现在只有我机器上还有VB6,勉为其难,只有尝试一下了。
如果我写的这点幼稚的东西能为想要了解VB数据库操作的朋友提供哪怕是一丁点儿的参考和帮助,将是我最为高兴的事情,同时也希望高手不要见笑。
我做的这个实例名为“编程入门网网址管理系统”,算是一个小型的信息管理系统吧。
该系统后台使用的是Access数据库,程序中使用ADO代码链接的形式连接Access。
该系统具有向数据库中添加、修改、删除记录的功能,进行某项操作后能够实时刷新显示数据。
并在程序中加了相应的代码对输入的数据进行合法性校验,以避免输入错误的数据造成程序运行不正常,程序运行时各个操作及退出系统时均有友好的提示框请用户确认。
所有代码均在Windows2003+VusualBasic6.0环境下调试通过。
系统运行时如下图:
准备数据库
我用的是Access2003,因为需要讲解的仅仅是数据的添加、修改及删除,因此单数据库、单表就够了。
如果以后您要编写更复杂一些的信息管理系统而涉及到多表操作,则您还需要补充一些关系数据库方面的知识,比如实体、一对一联系、一对多联系等等;此外,对sql语言也需要有所了解。
具体您可以参考:
数据库基础知识ABC。
首先,在“我的电脑”的e盘新建一个名为vb文件夹,先打开Access,新建一个名为Access_db的数据库(Access数据库文件的扩展名是.mdb),保存到刚才建立的文件夹中,则以后在程序中调用数据源的位置为E:
\vb\Access_db.mdb。
然后在Access_db.mdb中建立一个名为wzdz的表(wzdz是“网站地址”的首字母缩写),然后在wzdz表中添加网站名称、网站地址及网站描述三个字段,三个字段的属性是相同的,如下:
▲数据类型:
文本。
▲字段大小:
50
▲有效性规则:
无。
▲必填字段:
否
▲允许空字符串:
否
▲索引:
无
“编号”这个字段使用的是Access的自动编号,并将其作为主键。
也就是说,您在表中设置以上三个字段即可,设置完毕保存表时,按Access的提示添加主键,Access会自动为您搞定。
具体操作您可以参考:
vb神童教程(续)--vb连接Access数据库实例
这样在建立了数据库及表结构之后,即使是调用没有记录的空库,系统也可以无差错运行,可以在运行时通过“添加记录”按钮向数据库中添加记录。
不过由于数据库是空的,系统第一次运行时数据显示控件没有数据可显示,显得空荡荡的,不太美观哦。
为了方便起见,我们在Access中给wzdz表中预先添加两条初始记录:
编号
网站名称
网站地址
网站描述
1
编程入门网
各种编程文档、电脑教程及软件应用技巧,您的电脑技术加油站!
2
健康生活网
www.health163.org
您的健康指南
添加的方法很简单:
在Access的设计器中直接双击wzdz表名,在出来的窗口中添加即可。
添加时注意:
因为我们使用的是Access的自动编号做主键,所以在添加时不用理“编号”这个字段,直接添加后三个字段即可。
下一步的工作,是设计系统的界面及设置各个对象的属性。
设计系统的界面及对象的属性
本系统是一个很简单的数据库操作实例,能够对数据库的添加、修改及删除记录这几个基本的操作。
系统使用数据显示控件MSHFlexGrid显示数据库中的记录,使用数据链接控件Adodc链接数据库作为MSHFlexGrid的数据源,使用文本框来接收系统运行时用户输入的数据。
步骤如下:
一、启动VB6,新建一个标准exe工程,并将工程中的form1的caption属性设置为“编程入门网网址管理系统”,width属性值设为7950,height属性值设为4620。
二、向窗体中添加一个Adodc控件。
如果在工具箱中找不到Adodc控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“MicrosoftADODataControl6.0(OLEDB)”。
在VB的属性窗口我们对Adodc控件的三个个属性值进行编辑,其余属性值使用默认的即可:
1、ConnectionString属性值设为:
Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:
\vb\Access_db.mdb;PersistSecurityInfo=False
这个属性设置了连接Access_db.mdb这个数据库。
2、RecordSourc属性值设为:
select*fromwzdz
这个属性值中的sql语句的作用是查询出wzdz表中的所有记录。
3、Visible属性值设为False,作用是使其在运行时不可见。
三、向窗体添加一个MSHFlexGrid控件,如果工具箱中没有MSHFlexGrid控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“MicrosoftHierarchicalFlexGridControl6.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。
如果数据链接正常,在“属性页”对话框的“带区”选项卡中可以看到列标题和列名称已经设置了,这里注意应该将“带区”选项卡中的“列标头”选项勾选上,否则运行时无法显示列标题,如下图。
“属性页”对话框的其它部分使用默认值即可。
四、向窗体中添加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&,作用是把文本框和命令按钮隔开,这样在视觉上似乎能好看些。
八、所有控件设置完毕后,界面如下图所示:
为对象添加事件代码
一、form1的load事件代码:
PrivateSubForm_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=""
EndSub 主要是在系统初始化时设置MSHFlexGrid控件的列宽,并将文本框置空。
二、“添加记录”按钮(command1)的click事件代码:
PrivateSubCommand1_Click()
DimscAsInteger
IfText1.Text=""OrText2.Text=""OrText3.Text=""Then
'即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据
'由于系统数据库设计为“编号”字段采用的是Access的自动编号
'因此在添加记录时不接收编号的数据,由Access自动加编号
MsgBox("请输入完整的网站信息")
Else
sc=MsgBox("确实要添加这条记录吗?
",vbOKCancel,"提示信息")
Ifsc=1Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimStr1AsString
DimStr2AsString
DimStr3AsString
Str1="Provider=Microsoft.Jet.OLEDB.4.0;"
Str2="DataSource=E:
\vb\Access_db.mdb;"
Str3="JetOLEDB:
DatabasePassword="
conn.OpenStr1&Str2&Str3
strSQL="select*fromwzdz"
rs.OpenstrSQL,conn,3,3
rs.AddNew
rs!
网站名称=Text1.Text
rs!
网站地址=Text2.Text
rs!
网站描述=Text3.Text
rs.Update
rs.Close
conn.Close
MsgBox("添加记录成功!
")
Adodc1.Refresh
'刷新数据源,MSHFlexGrid控件会实时刷新显示数据
EndIf
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text="":
Text2.Text="":
Text3.Text="":
Text4.Text=""
EndIf
EndSub
三、“修改记录”按钮(command2)的click事件代码:
PrivateSubCommand2_Click()
IfNotIsNumeric(Text4.Text)OrVal(Text4.Text)=0Then
'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程
MsgBox"记录号是大于0的自然数,请输入正确的编号!
"
ExitSub
EndIf
IfText1.Text=""OrText2.Text=""OrText3.Text=""Then
'对三个文本框的内容进行校验,不接收空值
MsgBox"请输入完整的网站信息!
"
ExitSub
EndIf
DimscAsInteger
sc=MsgBox("确实修改这条记录吗?
",vbOKCancel,"提示信息")
Ifsc=1Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimStr1AsString
DimStr2AsString
DimStr3AsString
Str1="Provider=Microsoft.Jet.OLEDB.4.0;"
Str2="DataSource=E:
\vb\Access_db.mdb;"
Str3="JetOLEDB:
DatabasePassword="
conn.OpenStr1&Str2&Str3
strSQL="select*fromwzdzwhere编号="&Val(Text4.Text)&""
rs.OpenstrSQL,conn,3,3
Ifrs!
编号=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
ExitSub
EndIf
EndIf
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text="":
Text2.Text="":
Text3.Text="":
Text4.Text=""
EndSub
四、“删除记录”按钮(command3)的click事件代码:
PrivateSubCommand3_Click()
IfNotIsNumeric(Text4.Text)OrVal(Text4.Text)=0Then
'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程
MsgBox"编号是大于0的自然数,请输入正确的编号!
"
ExitSub
EndIf
DimscAsInteger
sc=MsgBox("确实要删除这个记录吗?
",vbOKCancel,"删除确认!
")
Ifsc=1Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimStr1AsString
DimStr2AsString
DimStr3AsString
Str1="Provider=Microsoft.Jet.OLEDB.4.0;"
Str2="DataSource=E:
\vb\Access_db.mdb;"
Str3="JetOLEDB:
DatabasePassword="
conn.OpenStr1&Str2&Str3
strSQL="select*fromwzdzwhere编号="&Val(Text4.Text)&""
rs.OpenstrSQL,conn,3,3
Ifrs!
编号=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
ExitSub
EndIf
EndIf
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text="":
Text2.Text="":
Text3.Text="":
Text4.Text=""
EndSub
五、“退出系统”按钮(command4)的click事件代码:
PrivateSubCommand4_Click()
DimscAsInteger
sc=MsgBox("确实要退出系统吗?
",vbOKCancel,"提示信息")
Ifsc=1Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
End
EndIf
EndSub
六、添加完事件代码之后,我们这个实例至此完成,运行一下吧!
ODBC数据源简介
ODBC(开放式数据库连接)是一种应用程序的接口(API)。
这种接口提供了独立于任何的数据管理系统编写应用程序的能力。
OCBC通过ODBC驱动程序提供了对不同的数据库供应商的一组应用程序接口来给特殊的数据库管理系统(DBMS)。
用户的应用程序使用这组API来调度ODBC驱动程序。
然后驱动程序通过SQL语句同DBMS发生联系。
下面我们开始介绍ODBC数据源。
在“我的电脑”中打开“控制面板”中的“管理工具”,在窗口中即可见ODBC数据源图标。
双击打开ODBC数据源管理器,如下图所示:
ODBC数据源管理器为配置、添加、删除各种不同的数据源名称提供了最为简洁的方法。
它使得用户可以轻松地完成数据源的配置工作,用户也可以删除原有的DSN(数据源名称),或对先前配置的数据源进行修改。
ODBC数据源管理器的具体功能如下:
▲用户DSN:
ODBC用户数据源存储了如何与指定数据提供者连接的信息。
用户数据源只对当前的用户可见,而且只能应用在本机上。
▲系统DSN:
ODBC系统数据源存储了如何与指定数据提供者连接的信息。
系统数据源对当前机器上的所有用户可见。
▲文件DSN:
ODBC文件数据源允许用户连接数据提供者。
文件DSN可以由安装了相同驱动程序的用户共享。
▲驱动程序:
ODBC驱动程序允许那些支持ODBC的程序通过ODBC数据源获取信息。
如果安装新的驱动程序,要使用其安装程序。
▲跟踪:
ODBC跟踪允许创建调用ODBC驱动程序的日志,以供技术人员查看;也可以辅助调试应用程序。
VisualStudio跟踪启动MicrosoftVisualStudio的ODBC跟踪。
▲连接池:
连接池允许应用程序重新打开连接句柄,此操作将往返过程存入服务器。
配置Access数据源
(1)打开控制面板中的ODBC数据源管理器,在“用户DSN”(即“用户数据源”)中选择“MSAccessDatabase”选项,可心删除或配置一个已有的用户数据,这里我们将要添加一个数据源。
(2)单击添加按钮,系统将准备在MSAccessDatabase下添加一个用户数据源,为了安装数据源,会弹出创建新数据源窗口,如下图:
(3)在创建新数据源窗口中,选择"MicrosoftAccessDriver"来安装数据源。
(4)单击“完成”按钮,进入ODBCMicrosoftAccess安装窗口,如下图:
▲在“数据源名”项中键入数据源的名称,这里我们键入“Access_db”作为数据源名。
▲在“描述”项中键入对数据源的描述,此处内容可选,这里我们键入“ThisisAccessdatabasetemp”。
▲在“数据库”项中可以选取、创建、修复或者压缩数据库。
这里我们选择“选取”按钮来选取相应的Access数据库。
如果用户没有自己建立的Access数据库,那么用户可以到安装Access的目录下面选取Access自带的数据库。
注意:
Access数据库文件的扩展名是.mdb。
▲最后,单击“确定”按钮。
至此一个新的Access数据源已经添加完成,如下图:
说明:
如果用户希望所创建的数据源名被本机中的多个用户所使用,请用户添加系统DSN。
在实际情况中,开发一个单机单用户的系统没有什么意义,所以一般都需要对系统DSN进行配置。
系统DSN的添加过程同用户DSN添加过程类似。
配置SQLServer数据源
配置SQLServer数据源的步骤:
(1)打开控制面板中的ODBC数据源管理器,单击“添加”按钮来添加一个数据源。
(2)单击添加按钮后,系统将准备添加一个用户数据源。
为了安装数据源,会弹出创建新数据源窗口,如下图所示。
由于VB和SQL