[vb连接数据库]vb中运用dao方法连接数据库
[vb连接数据库]vb中运用dao方法连接数
据库
篇一 : vb中运用dao方法连接数据库
vb中运用dao方法连接数据库2008年05月28日 星期三 下午 09:04你只需要使用 连接数据库的方法就好了。 Set dbase=OpenDatabase Set rs=dbase.OpenRecordset End Sub 具体操作看后面的介绍~ DAO全称为数据访问对象,它是数据库编程的重要方法之一。DAO的一种面向对象的界面接口,特色为它不是可视化的对象,使用它全部都要靠编码来完成,DAO是设计关系型数据库系统结构的对象类的集合。它提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。由于ADO的出现,DAO的使用已大大减少,但它无须使用ODBC便可连接各个数据源,因而我们仍经常用经典的DAO。下面我向大家详细介绍如何使用DAO编程。 DAO使用之前必须先引用。方法为打开VB6.0 , 从VB的”工程”菜单中,选择”引用”项,当”引用”对话框出现后,从库的列表中,选择”Microsoft DAO 3.51 Object Library”,单击”确定”。现在便可以使用DAO对象库提供的所有对象进行编程了。 一、 创建数据库: 在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库。这一点在程序中是非常有用的。用户可以根据要求实时建立数据库。
建立过程如下: Private Sub Com_creat_Click On Error GoTo Err100
CreatDataBase “数据库名称.mdb” ,dbLangGeneral Msgbox “数据库建
立完毕” Exit Sub Err100: MsgBox “不能建立数据库! “ & vbCrLf & vbCrLf & Err.Description, vbInformation End Sub 这样,数据库便在当
前默认的路径下建立了。 二、 创建表与字段: 建立数据库后,则
需要在该数据库中建立表,这要用到TableDef 对象。先定义一个
TableDef类型的对象,然后用TableDef集合中Append方法将之追加
到数据库当中去。并且同时定义一个Field对象,用CreatFiele的方
法创建一个Field对象,向表中添加字段。例如: Private Sub Com_table_Click On Error GoTo Err100 Dim Defdb As DataBase Dim
NewTable As TableDef Dim NewField As Field Set Defdb =
Workspaces.OpenDatabase Set NewTable = DefDataBase.CreateTableDef Set NewField = DefTable.CreateField ′创
建一个字符型的字段,长度为6个字符 DefTableFields.Append NewField ′字段追加 DefDatabase.TableDefs.Append NewTable ′表追加
Msgb
ox “ 表建立完毕 “ Exit Sub Err100: MsgBox “对不起,不能建
立表。[]请先再建表前建立数据库,”, vbCritical End Sub 一个数据库
可能有十几个甚至几十个字段,一个表中有多少个字段,则要创建多
少次并要追加到表中。每建立一个字段后都要用到字段追加命令,但
是表追加只需在所有字段建立完成后用一条命令即可完成。 三、 打
开数据库: 在VB中,对一个对象变量引用之前必须加以说明。DAO
也是如此,必须先声明数据库变量,例如:Dim dbase As Database 。
建立了数据库对象变量后,我们便可打开数据库了,在一般情况下都
只是访问一个数据库,当打开数据库后再对数据库中的各个记录进行
操作,这就要用到Recordset 对象建立记录集。例如: Private Sub
Command_OpenDatabase_Click Dim dbase as Database Dim rs As Recordset Set dbase = OpenDatabase Set rs = dbase.OpenRecordset End Sub 这样,数据库中的记录便放到Recordset中,可以进行后续
操作了。 四、 使用数据库: 当打开数据库,建立Recordset 记录
集后,便可浏览、删除、添加、查找数据库中的内容。 1) 向前浏
览 Private Sub cmd_previous_Click rs.MovePrevious if rs.BOF =True then rs.Movelast End if for i = 0 to 11 label.caption = rs.Fields & ““ next End Sub 在字段赋值的末尾加上”“可以避免许多不必要的错误,在数
据库中,当一个字段为空的时候,它的值为Null ,Null表示什么也
没有。因此无法赋值,赋给变量时会出错。但我们加上”“空格符时,
便有效的避免了赋值错误,这个技巧非常的有用。 2) 向后浏览
Private Sub cmd_next_Click rs.MoveNext If rs.EOF =True then rs.MoveFirst End if for i = 0 to 11 label.caption = rs.Fields & ““ next End Sub 3) 删除记录 Private Sub cmd_del_Click On Error GoTo handle Dim msg as string msg = “是否要删除记录”& Chr$ msg = msg & label ′
把删除记录的代号加入msg中 If Msgbox 1 Then Exit sub rs.delete rs.Movenext If rs.EOF = True Then rs.MovePrevious End if for i = 0 to 11 label.caption = rs.Fields & ““ next handle: MsgBox “该记录无法删
除!!!” Exit Sub End Sub 4) 添加记录 向数据库中添加记录比较麻烦
一点,大致分为三步:首先,用AddNew方法向数据库添加一个新的
空白记录;其次,将要输入的数据分别赋到数据库的各个字段中;最后,用Updata的方法,把记录写到数据库中去。例如: Private Sub cmd_new_Click rs.AddNew For i = 0 to 11 rs.Fields = TextBox.Text
Next rs.Updata End Sub 5)查找记录 查找记录可以用Find方法,例
如: Pri
vate Sub Cmd_search_Click Set rs = dbase.openRecordset
rs.findfirst “字段名= „ “ & Text.Text & “ „ “ ′ Text.Text是输入的关键字 if rs.Nomatch = True then Msgbox “对不起,没有该记录” else For i = 0 to 11 label.caption = rs.Fields & ““ Next End if rs.close End Sub 以上只
是大致介绍了DAO的一些最常用、最典型的用法,真正要熟练掌握
它需要不懈的努力。[]当你很好的理解了DAO后,对学习新的RDO和ADO也有很大的帮助。并且DAO和ADO可以同时使用,DAO的缺陷在于查找功能不强,没有ADO方便,但动态创建数据库却远
超ADO,因此有时二者结合更强大。我们相信DAO一定会帮你节约
宝贵时间,为工作提供方便。
篇二 : vb登录界面设计笔记
vb登录界面设计实验笔记
实验目的:这次实验目的是设计出一个应用程序的登录界面,并连接SQL server 2000数据库,以实现用户登录功能。
实验任务:
新建数据库并命名为denglu,在该数据库中新建表User1,表包含的列为“ID,username,pwd”。
设计登录界面Frmlogin,以及登录成功后要显示的界面Form2,并连接到数据库,使包含在数据库中的合法用户能成功登录该程序,而不合法用户则无法进入程序。
实验内容:
一、界面设计
各控件名称属性分别为:label1 、text1 、label2、text2、commandok、cmdcancel
登录成功后显示的窗体:
代码设计如下:
„首先添加一个模块,写上以下通用声明和Sub main:
Public conn As ADODB.Connection „通用
Sub main
Set conn = New ADODB.Connection „通用
conn.ConnectionString = “Provider=SQLOLEDB.1;Persist Security
Info=False;” _
+ “User ID=sa;password=123;Initial Catalog=denglu;Data
Source=127.0.0.1” „连接数据库代码
conn.Open
frmLogin.Show „首先显示登录界面。也可以在工程属性中设置启动
对象为Sub main或者frmlogin窗体
End Sub
„在Frmlogin 代码窗口,为cmdok控件写以下代码:
Private Sub cmdok_Click
If text1.Text = ““ Then
MsgBox “用户名不能为空~”, vbOKOnly + vbInformation, “友情提示”
text1.SetFocus
Exit Sub „若用户名文本框内为空,则出现提示框
End If
If text2.Text = ““ Then
MsgBox “密码不能为空~”, vbOKOnly + vbInformation, “友情提示”
text2.SetFocus
Exit Sub „若输入密码文本框为空,也出现提示框
End If
Dim strSQl As String
strSQl = “select * from User1 where username=„“ & Trim$ & “„ and
pwd=„“ & Trim$ & “„ “
„
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
写SQL代码,查询User1表中是否存在窗体中用户输入的信息。
Dim str As New ADODB.Recordset
Set str = New ADODB.Recordset
str.CursorLocation = adUseClient
str.Open strSQl, conn, adOpenStatic, adLockReadOnly
With str
If .State = adStateOpen Then .Close
.Open strSQl
If .EOF Then
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox “您已连续三次输入错误,系统将自动关闭”, vbOKOnly + vbCritical, “警告”
Unload Me „若用户连续输入3次错误密码,则系统关闭
Else
MsgBox “对不起,用户名不存在或密码错误 ~”, vbOKOnly + vbQuestion, “警告”
text1.SetFocus
text1.Text = ““
text2.Text = ““
End If
Else
Unload Me „若登录成功,则隐藏当前窗体
Form2.Show „然后显示Form窗体
End If
End With
End Sub
Private Sub cmdCancel_Click
End „若单击Cmdcel按钮,则结束应用程序
End Sub
运行中存在的问题:
代码中有Dim conn As adodb.connection,运行时显示”用户定义类型未定义”,请问我应该怎么做?
解决方法:点击“工程”--“引用”找到“Microsoft ActiveX Data Object
2.6”
然后就就可以正常运行了。篇三 : VB几种连接数据库的方法
,、用DAO控件连接数据库
1.与Access2000数据库连接
Private Sub Command1_Click
„也可直接在控件属性中设置以下各项但在控件属性中不能写入密码
„只有在数据数没有密码的情况下可以省略
Data1.Refresh
Data1.Connect = “Access 2000;”
Data1.DatabaseName = App. Path +”\chncmadb.mdb”
„数据库没有密码此句可省
Data1.Connect = “;pwd=123456”
„Data1.RecordSource =“耕地资源管理单元属性数据表2004”
Data1.RecordSource = “select * from耕地资源管理单元属性数据表2004”
Data1.Refresh
’move后才能正确显示记录个数
End Sub
2.与没有密码的DBF文件数据库连接
Private Sub Command2_Click
Data1.Connect = “dBASE III;”
Data1.DatabaseName = App. Path
„ Data1.RecordSource =“DBF”
Data1.RecordSource = “select * fromdbf”
Data1.Refresh
’move后才能正确显示记录个数
End Sub
3.与没有密码的Excel文件数据库连接
Private Sub Command3_Click
Data1.Connect = “Excel 8.0;”
Data1.DatabaseName = App.Path &”\EXcel.xls”
Data1.RecordSource = “select *from [EXcel.xls]”
Data1.Refresh
’move后才能正确显示记录个
End Sub
二、用DAO代码连接数据库
„在使用DAO对象前应选定VisualBasic菜单下的[工程]中的引用了菜单中的[Microsoft DAO 3.6 ObjectLibrary]选项,或其它版本
1.DAO代码与Access数据库连接
Private Sub Command1_Click
Dim Db As Database
Dim Rs As Recordset
„以共享、读写方式打开?如果无密码最后一个参数可以不要
Set Db= OpenDatabase
„不需要move来更新记录个数
„Set Rs =Db.OpenRecordset
„需要move来更新记录个数
Set Rs = Db.OpenRecordset
If Rs.RecordCount > 0 Then
Rs.MoveLast
Rs.MoveFirst
End If
End Sub
2.DAO代码与没有密码的DBF文件数据库连接
Private Sub Command2_Click
Dim Db As Database
Dim Rs As Recordset
„以共享、读写方式打开
Set Db = OpenDatabase
„不需要move来更新记录个数
„Set Rs = Db.OpenRecordset
’需要move来更新记录个数
Set Rs = Db.OpenRecordset
If Rs.RecordCount > 0 Then
Rs.MoveLast
Rs.MoveFirst
End If
End sub
3.?DAO代码与没有密码的Excel文件数据库连接
Private Sub Command3_Click
Dim Db As Database
Dim Rs As Recordset
„以共享、读写方式打开?如果无密码最后一个参数可以不要
Set Db = OpenDatabase
„不需要move来更新记录个数
„ Set Rs = Db.OpenRecordset?表格中的工作目录sheet
„需要move来更新记录个数
Set Rs = Db.OpenRecordset „表格中的工作目录sheet?
If Rs.RecordCount > 0 Then
Rs.MoveLast
Rs.MoveFirst
End If
End Sub
三、用ADO控件连接数据库
„也可直接在控件属性中设置以下各项
1.ADO控件与Access2000数据库连接
Private Sub Command1_Click
„连接有密码的Access数据库
„Adodc1.ConnectionString =
“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“ & App.Path &
“\chncmadb1.mdb;Jet OLEDB:DataBasePASSWORD=123456”
„连接没有密码的Access数据库
Adodc1.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“ & App.Path &
“\chncmadb.mdb;Persist SecurityInfo=False”
„Adodc1.RecordSource =“[耕地资源管理单元属性数据表2004]”
Adodc1.RecordSource = “select * from[耕地资源管理单元属性
数据表2004]”
Adodc1.Refresh
SetDataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
2.?ADO控件与DBF表连接
Private Sub Command2_Click
„Adodc1.ConnectionString = “Provider=MSDASQL.1;Persist SecurityInfo=False;Data Source=dBASE Files;DBQ=“ & App.Path &”;SourceType=DBF;”
„Adodc1.ConnectionString = “Provider=MSDASQL.1;Persist SecurityInfo=False;Extended Properties=DSN=Visual FoxProTables;UID=;SourceDB=”&
app.path&”;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Coll
ate=Machine;Null=Yes;Deleted=Yes;”
„Adodc1.ConnectionString = “Provider=MSDASQL.1;Persist SecurityInfo=False;Extended Properties=DSN=dBASE Files;DBQ=”& app.path&”;;DefaultDir=”&
app.path&”;DriverId=533;MaxBufferSize=2048;PageTimeout=5;”
„能使表名长度不受限制
Adodc1.ConnectionString =
“Provider=MSDASQL.1;Driver=MicrosoftVisual Foxpro
Driver;SourceDB=“ & App.Path &”;SourceType=DBF;Locale Identifier=2052”
„Adodc1.RecordSource = “[DBF1]”
Adodc1.RecordSource = “select * from DBF1”
Adodc1.Refresh
SetDataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
3.?ADO控件与Excel表连接
Private Sub Command3_Click
„下面一句测试未能通过
„Adodc1.ConnectionString =
“DataProvider=MSDASQL.1;driver=Microsoft Excel Driver
*.xls);DBQ=“ &App.Path & “\EXcel.xls”
„Adodc1.ConnectionString=“Provider=MSDASQL.1;Persist SecurityInfo=False;Extended Properties=DSN=Excel Files;DBQ=“ & App.Path&
“\EXcel.xls;DefaultDir=”&app.path&”;DriverId=790;MaxBufferSize=2048;PageTimeout=5;”
Adodc1.ConnectionString =
“Provider=Microsoft.Jet.OLEDB.4.0;PersistSecurity Info=False;Data Source=“ & App.Path &”\EXcel.xls;Extended Properties=„Excel
8.0;HDR=Yes?”
„Adodc1.RecordSource = “[EXcel.xls]”
Adodc1.RecordSource = “select * from [EXcel.xls]”
Adodc1.Refresh
SetDataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
4.?ADO控件与Oracle数据库连接
Private Sub Command4_Click
„Adodc1.ConnectionString =“Provider=MSDAORA.1;Password=chncmadb;User ID=chncmadb;DataSource=towebserver;Persist Security Info=True”
Adodc1.ConnectionString=“Provider=OraOLEDB.Oracle.1;Password=ch
ncmadb;PersistSecurity Info=True;User ID=chncmadb;DataSource=towebserver”
„Adodc1.RecordSource = “T320481TR012004”
„表名不能加方括号
Adodc1.RecordSource = “select * from T320481TR012004”
Adodc1.Refresh
SetDataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
5.?ADO控件与SQLserver数据库连接
„未测试
Private Sub Command5_Click
Adodc1.ConnectionString = “Provider=SQLOLEDB.1;Password=111;PersistSecurity Info=True;User
ID=111;Initial Catalog=111;DataSource=111”
„Adodc1.RecordSource = “T320481TR012004”
Adodc1.RecordSource = “select * from T320481TR012004”
Adodc1.Refresh
SetDataGrid1.DataSource = Adodc1
DataGrid1.Refresh
End Sub
四、用ADO代码连接数据库
„在使用ADO对象前应选定VisualBasic菜单下的[工程]中的引用了菜单中的[Microsoft.ActiveX Data Object2.5 Library]选项,或其它版本
1.?ADO代码与Access2000数据库连接
Private Sub Command1_Click
DimAdoCnn As ADODB.Connection
DimAdoRs As ADODB.Recordset
SetAdoCnn = New ADODB.Connection
SetAdoRs = New ADODB.Recordset
AdoCnn.CursorLocation = adUseClient
„.open后面的字符串可以参考ADO控件连接.ConnectionString后面的的字符串
AdoCnn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=“ &App.Path & “\chncmadb1.mdb;Jet OLEDB:DataBasePASSWORD=123456”
AdoRs.Open “select * from[耕地资源管理单元属性数据表
2004]”, AdoCnn, adOpenDynamic,adLockPessimistic, adCmdText
SetDataGrid1.DataSource = AdoRs
SetAdoRs = Nothing
SetAdoCnn = Nothing
End Sub
2.?ADO代码与DBF表连接
Private Sub Command2_Click
DimAdoCnn As ADODB.Connection
DimAdoRs As ADODB.Recordset
SetAdoCnn = New ADODB.Connection
SetAdoRs = New ADODB.Recordset
AdoCnn.CursorLocation = adUseClient
„.open后面的字符串可以参考ADO控件连接.ConnectionString后面的的字符串
AdoCnn.Open “Provider=MSDASQL.1;Driver=Microsoft Visual FoxproDriver;SourceDB=“ & App.Path &
“;SourceType=DBF;LocaleIdentifier=2052”
AdoRs.Open “select * from [DBF1]”, AdoCnn,adOpenDynamic, adLockPessimistic, adCmdText
SetDataGrid1.DataSource = AdoRs
SetAdoRs = Nothing
SetAdoCnn = Nothing
End Sub
3.?ADO代码与Excel表连接
Private Sub Command3_Click
DimAdoCnn As ADODB.Connection
DimAdoRs As ADODB.Recordset
SetAdoCnn = New ADODB.Connection
SetAdoRs = New ADODB.Recordset
AdoCnn.CursorLocation = adUseClient
„.open后面的字符串可以参考ADO控件连接.ConnectionString
后面的的字符串
AdoCnn.Open”Provider=Microsoft.Jet.OLEDB.4.0;Persist SecurityInfo=False;Data Source=“ & App.Path &
“\EXcel.xls;ExtendedProperties=„Excel 8.0;HDR=Yes?”
AdoRs.Open “select * from [EXcel.xls]”,AdoCnn,
adOpenDynamic, adLockPessimistic, adCmdText
SetDataGrid1.DataSource = AdoRs
SetAdoRs = Nothing
SetAdoCnn = Nothing
End Sub
4.?ADO代码与Oracle数据库连接
Private Sub Command4_Click
DimAdoCnn As ADODB.Connection
DimAdoRs As ADODB.Recordset
SetAdoCnn = New ADODB.Connection
SetAdoRs = New ADODB.Recordset
AdoCnn.CursorLocation = adUseClient
„.open后面的字符串可以参考ADO控件连接.ConnectionString后面的的字符串
AdoCnn.Open
“Provider=OraOLEDB.Oracle.1;Password=chncmadb;PersistSecurity
Info=True;User ID=chncmadb;DataSource=towebserver”
AdoRs.Open “select * from T320481TR012004”,AdoCnn,
adOpenDynamic, adLockPessimistic, adCmdText
SetDataGrid1.DataSource = AdoRs
SetAdoRs = Nothing
SetAdoCnn = Nothing
End Sub
5.?ADO代码与SQLserver数据库连接
„未测试
Private Sub Command5_Click
DimAdoCnn As ADODB.Connection
DimAdoRs As ADODB.Recordset
SetAdoCnn = New ADODB.Connection
SetAdoRs = New ADODB.Recordset
AdoCnn.CursorLocation = adUseClient
„.open后面的字符串可以参考ADO控件连接.ConnectionString后面的的字符串
AdoCnn.Open “Provider=SQLOLEDB.1;Password=111;Persist
SecurityInfo=True;User ID=111;Initial Catalog=111;DataSource=111”
AdoRs.Open “select * from T320481TR012004”,AdoCnn,
adOpenDynamic, adLockPessimistic, adCmdText
SetDataGrid1.DataSource = AdoRs
SetAdoRs = Nothing
SetAdoCnn = Nothing
End Sub
该文章转载自网络大本营: