你要做数据库方面的软件,首先了解一下访问数据库的方法,我想下面的文章对你学习数据库绝对有帮助,不妨看一下,然后再学习源代码,这样会学的快一些的! ——真诚人的真诚话〖使用数据控件访问数据库〗
1.VisualBasic访问数据库 2.数据控件
3.记录集(RecordSet) 4.绑定控件 VisualBasic访问数据库
顶点
在VisualBasic中通过数据访问控件或数据访问对象(DAO)可以访问下列数据库:
1.Jet数据库,即Microsoft Access
2.ISAM数据库。如:dBase、FoxPro等。
3.ODBC数据库。
凡是遵循ODBC标准的客户/服务器数据库。
如:Microsoft SQL Server、Oracle
数据控件
顶点
属性: 方法: 事件:
Connect Refresh Validate
DatabaseName UpdateRecord Reposition
RecordSource CancelUpdate
RecordSet
Connect属性
顶点
指定打开的数据库类型,并且包括参数,如用户和口令等。
例如:
打开Access数据库(缺省)
Connect="Access"
打开FoxPro2.5数据库
Connect="FoxPro 2.5"
打开ODBC数据库
Connect="ODBC;DATABASE=xx;UID=xx;PWD=xx;DSN=xx"
(详细内容在DAO中介绍)
DatabaseName属性
顶点
确定数据控件访问哪一个数据库。
[注]:
对于多表数据库它为具体的数据库文件名。
例:Access数据库
DatabaseName="C:\demo.mdb"
对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RocordSouce属性中。
例:访问FoxPro数据库文件 C:\FOX\Sample.DBF
DatabaseName="C:\fox"
RecordSource="sample" '不带文件扩展名
RecordSource属性
顶点
确定数据控件的记录集,即:所要访问的数据内容。它可以是一个表名、存储查询名或一条SQL语句。
例:访问RYK表所有数据。
RecordSource="RYK"
访问RYK表中1982年以前出生的数据。
RecordSource="Select * from RYK where [Birthday]<#1/1/1982#"
[注]:当我们在运行时修改了该属性后,需要调用Refresh方法刷新记录集。
Refresh方法
顶点
当我们在运行时修改了RecordSource属性后,需要调用该方法刷新记录集。
UpdateRecord方法
顶点
将绑定在数据控件上的控件的数据写入数据库中,即:当我们修改了数据后调用该方法确认修改。
CancelUpdate方法
顶点
将数据库中数据从新读到绑定在数据控件上的控件中,即:当我们修改了数据后调用该方法放弃修改。(详见绑定控件)
Validate事件
顶点
当我们移动记录集记录指针时发生。
例如:我们将记录集记录指针从记录A移动到记录B时,当产生Validate事件时,记录指针仍在记录A上。
Sub XXXX_Validate(Action As Integer,Save As Integer)
其中:
Action 指出如何产生了该事件,如:移动、增加、查询等。
Save 表示是否保存已修改的数据。
当我们修改了绑定在数据控件的数据,以没有调用UpdateRecord,而要移动指针时,Save=True。如果在事件中令Save=False,则放弃修改。
例:
Sub XXXX_Validate(Action As Integer,Save As Integer)
If Save Then
i=MsgBox("Data changed,Save?",vbYesNo)
If i=vbNo Then Save=False
End If
End Sub
Reposition事件
顶点
当我们移动记录集记录指针时发生。
例如:我们将记录集记录指针从记录A移动到记录B时,当产生Reposition事件时,记录指针已移到记录B上。
通常我们在该事件中显示当前的指针位置。
例:
Sub XXXX_Reposition()
XXXX.Caption=XXXX.RecordSet.AbsolutePosition + 1
End Sub
记录集(RecordSet)
顶点
记录集是记录控件所引用得整个记录的集合。
属性: 方法:
BOF、EOF AddNew
AbsolutePosition Delete
BookMark MoveFirst、MoveLast、MovePrevious、MoveNext
NoMatch FindFirst、FindLast、FindPrevious、FindNext
BOF、EOF属性
顶点
BOF属性
当记录集记录指针指向起始之前返回True。
EOF属性
当记录集记录指针指向结尾返回True。
AbsloutePositon属性
顶点
返回当前记录集记录指针,第一条记录为0,只读属性。
BookMark属性
顶点
String类型。返回或设置当前记录集记录指针的书签,可读写。
[注]:
程序中使用BookMark属性重定位记录指针,而不能使用AbsloutePositon属性。
NoMatch属性
顶点
当我们使用Find方法查询时如果未找到则返回True。常与BookMark属性同时使用。
例:查找[Name]字段中第一个姓李的人。
Dim S As String
With XXXX.RecordSet
S=.BookMark
.FindFirst"[Name] Like '李*'"
If .NoMatch Then
MsgBox "数据未找到"
.BookMark=S
End If
End With
AddNew方法
顶点
向记录集增加一条新记录。
Delete方法
顶点
从记录集中将当前记录删除。在删除后常使用MoveNext方法移动指针。
例:
With XXXX.RecordSet
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
MoveFirst、MoveLast、MovePrevious、MoveNext方法
顶点
MoveFirst方法
将记录集指针移动到第一条记录上。
MoveLast方法
将记录集指针移动到最后一条记录上。
MovePrevious方法
将记录集指针移动到前一条记录上。
MoveNext方法
将记录集指针移动到下一条记录上。
FindFirst、FindLast、FindPrevious、FindNext
顶点
FindFirst方法
在记录集中查询附合条件的第一条记录。
FindLast方法
在记录集中查询附合条件的最后一条记录。
FindPrevious方法
在记录集中查询附合条件的前一条记录。
FindNext方法
在记录集中查询附合条件的下一条记录。
绑定控件
顶点
我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。
常用的可绑定的控件有:
Label、Text、CheckBox、Image等。
通过设置这些控件的DataSource和DataField属性来完成绑定。
DataSource 属性表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。
DataField 属性表示绑定到记录集的哪一个记录上。
________________________________________________________________
〖使用DAO访问数据库〗
1.DAO体系结构 2.DBEngine
3.Workspace 4.打开数据库
5.创建记录集 6.事物处理
7.访问ODBC数据库 DAO体系结构
顶点
DAO是Microsoft Jet数据库引擎的面对对象的接口。(DAO体系结构[图片])
DBEngine
顶点
DBEngine对象相当于Jet数据库引擎,不需要创建该对象。
方法:
CreateWorkspace创建一个工作区对象。
例:
Dim ws As Workspace
Set ws=DbEngine.CreateWorkspace(SpName,UserID,Password",SpType)
其中:
SpName 工作区名称 String。
UserID 用户名 String。
Password 口令 String。
SpType 工作区类型。
=dbUseJet Jet工作区。
=dbUseODBC ODBC工作区。
Workspace
顶点
Workspace对象为用户定义一个会话,通过与之关联的用户名和口令建立一个安全级别。当不需要安全级别时可使用缺省的工作区DBEngine.Workspace(0)。
方法:
OpenDatebase 打开一个数据库。
Close 关闭当前工作区。
BeginTrans 启动一个事物。
CommitTrans 提交当前事物。
RollBack 回滚当前事物。
打开数据库
顶点
我们调用Workspace的OpenDatabase方法打开一个数据库。
例:
Dim db As DataBase
Set db=OpenDatabase(dbname,exc,readonly,source)
其中:
dbname 数据库文件名。(对于单表数据库为路径)
exc=True 表示排它地打开数据库。
=False 表示可读写地打开数据库。
readonly=True 表示只读地打开数据库。
=False 表示可读写地打开数据库。
source 数据源名,用于指定打开的数据库类型。
例如:"FoxPro 2.5"、"ODBC;DSN=..."
创建记录集
顶点
我们DataBase使用对象的OpenRecordSet方法打开一个记录集。
例:
Dim rs As RecordSet
Set rs=db.OpenRecordSet(source,type)
其中:
source 指定记录集的内容,它可以是一个表名、查询名或SQL语句。
type 创建记录集的类型。
=dbOpenTable表型记录集。
=dbOpenDynaset动态型记录集。
=dbOpenSnapshot快照型记录集。
对记录集的操作详见《数据控件》。
事物处理
顶点
事物是对数据库所做的一系列改变。我们完成一项任务往往需要多步操作,而当其中一步出错后,以前的所有操作应取消,这时我们必需使用事物。首先启动事物,开始执行所有操作,当所有操作全部结束时,我们就提交事物。当发生错误时,我们就回滚事物。
例:
On Error Goto LE
BeginTrans
db.Execute"SQL语句1"
db.Execute"SQL语句2"
...
CommitTrans
...
LE:RollBack
访问ODBC数据库
顶点
要访问ODBC数据库需要两步。
首先需要在Windows95/98或WindowsNT的控件面板中设置ODBC数据源名(DSN)。
然后在OpenDatabase方法的Source参数中使用该数据源名。
例:访问Microsoft SQL Server
Source="ODBC;DSN=MyDSN;UID=sa;PWD=xx;DataBase=pubs"
具体说明详见RecordSource属性。
1.VisualBasic访问数据库 2.数据控件
3.记录集(RecordSet) 4.绑定控件 VisualBasic访问数据库
顶点
在VisualBasic中通过数据访问控件或数据访问对象(DAO)可以访问下列数据库:
1.Jet数据库,即Microsoft Access
2.ISAM数据库。如:dBase、FoxPro等。
3.ODBC数据库。
凡是遵循ODBC标准的客户/服务器数据库。
如:Microsoft SQL Server、Oracle
数据控件
顶点
属性: 方法: 事件:
Connect Refresh Validate
DatabaseName UpdateRecord Reposition
RecordSource CancelUpdate
RecordSet
Connect属性
顶点
指定打开的数据库类型,并且包括参数,如用户和口令等。
例如:
打开Access数据库(缺省)
Connect="Access"
打开FoxPro2.5数据库
Connect="FoxPro 2.5"
打开ODBC数据库
Connect="ODBC;DATABASE=xx;UID=xx;PWD=xx;DSN=xx"
(详细内容在DAO中介绍)
DatabaseName属性
顶点
确定数据控件访问哪一个数据库。
[注]:
对于多表数据库它为具体的数据库文件名。
例:Access数据库
DatabaseName="C:\demo.mdb"
对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RocordSouce属性中。
例:访问FoxPro数据库文件 C:\FOX\Sample.DBF
DatabaseName="C:\fox"
RecordSource="sample" '不带文件扩展名
RecordSource属性
顶点
确定数据控件的记录集,即:所要访问的数据内容。它可以是一个表名、存储查询名或一条SQL语句。
例:访问RYK表所有数据。
RecordSource="RYK"
访问RYK表中1982年以前出生的数据。
RecordSource="Select * from RYK where [Birthday]<#1/1/1982#"
[注]:当我们在运行时修改了该属性后,需要调用Refresh方法刷新记录集。
Refresh方法
顶点
当我们在运行时修改了RecordSource属性后,需要调用该方法刷新记录集。
UpdateRecord方法
顶点
将绑定在数据控件上的控件的数据写入数据库中,即:当我们修改了数据后调用该方法确认修改。
CancelUpdate方法
顶点
将数据库中数据从新读到绑定在数据控件上的控件中,即:当我们修改了数据后调用该方法放弃修改。(详见绑定控件)
Validate事件
顶点
当我们移动记录集记录指针时发生。
例如:我们将记录集记录指针从记录A移动到记录B时,当产生Validate事件时,记录指针仍在记录A上。
Sub XXXX_Validate(Action As Integer,Save As Integer)
其中:
Action 指出如何产生了该事件,如:移动、增加、查询等。
Save 表示是否保存已修改的数据。
当我们修改了绑定在数据控件的数据,以没有调用UpdateRecord,而要移动指针时,Save=True。如果在事件中令Save=False,则放弃修改。
例:
Sub XXXX_Validate(Action As Integer,Save As Integer)
If Save Then
i=MsgBox("Data changed,Save?",vbYesNo)
If i=vbNo Then Save=False
End If
End Sub
Reposition事件
顶点
当我们移动记录集记录指针时发生。
例如:我们将记录集记录指针从记录A移动到记录B时,当产生Reposition事件时,记录指针已移到记录B上。
通常我们在该事件中显示当前的指针位置。
例:
Sub XXXX_Reposition()
XXXX.Caption=XXXX.RecordSet.AbsolutePosition + 1
End Sub
记录集(RecordSet)
顶点
记录集是记录控件所引用得整个记录的集合。
属性: 方法:
BOF、EOF AddNew
AbsolutePosition Delete
BookMark MoveFirst、MoveLast、MovePrevious、MoveNext
NoMatch FindFirst、FindLast、FindPrevious、FindNext
BOF、EOF属性
顶点
BOF属性
当记录集记录指针指向起始之前返回True。
EOF属性
当记录集记录指针指向结尾返回True。
AbsloutePositon属性
顶点
返回当前记录集记录指针,第一条记录为0,只读属性。
BookMark属性
顶点
String类型。返回或设置当前记录集记录指针的书签,可读写。
[注]:
程序中使用BookMark属性重定位记录指针,而不能使用AbsloutePositon属性。
NoMatch属性
顶点
当我们使用Find方法查询时如果未找到则返回True。常与BookMark属性同时使用。
例:查找[Name]字段中第一个姓李的人。
Dim S As String
With XXXX.RecordSet
S=.BookMark
.FindFirst"[Name] Like '李*'"
If .NoMatch Then
MsgBox "数据未找到"
.BookMark=S
End If
End With
AddNew方法
顶点
向记录集增加一条新记录。
Delete方法
顶点
从记录集中将当前记录删除。在删除后常使用MoveNext方法移动指针。
例:
With XXXX.RecordSet
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
MoveFirst、MoveLast、MovePrevious、MoveNext方法
顶点
MoveFirst方法
将记录集指针移动到第一条记录上。
MoveLast方法
将记录集指针移动到最后一条记录上。
MovePrevious方法
将记录集指针移动到前一条记录上。
MoveNext方法
将记录集指针移动到下一条记录上。
FindFirst、FindLast、FindPrevious、FindNext
顶点
FindFirst方法
在记录集中查询附合条件的第一条记录。
FindLast方法
在记录集中查询附合条件的最后一条记录。
FindPrevious方法
在记录集中查询附合条件的前一条记录。
FindNext方法
在记录集中查询附合条件的下一条记录。
绑定控件
顶点
我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。
常用的可绑定的控件有:
Label、Text、CheckBox、Image等。
通过设置这些控件的DataSource和DataField属性来完成绑定。
DataSource 属性表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。
DataField 属性表示绑定到记录集的哪一个记录上。
________________________________________________________________
〖使用DAO访问数据库〗
1.DAO体系结构 2.DBEngine
3.Workspace 4.打开数据库
5.创建记录集 6.事物处理
7.访问ODBC数据库 DAO体系结构
顶点
DAO是Microsoft Jet数据库引擎的面对对象的接口。(DAO体系结构[图片])
DBEngine
顶点
DBEngine对象相当于Jet数据库引擎,不需要创建该对象。
方法:
CreateWorkspace创建一个工作区对象。
例:
Dim ws As Workspace
Set ws=DbEngine.CreateWorkspace(SpName,UserID,Password",SpType)
其中:
SpName 工作区名称 String。
UserID 用户名 String。
Password 口令 String。
SpType 工作区类型。
=dbUseJet Jet工作区。
=dbUseODBC ODBC工作区。
Workspace
顶点
Workspace对象为用户定义一个会话,通过与之关联的用户名和口令建立一个安全级别。当不需要安全级别时可使用缺省的工作区DBEngine.Workspace(0)。
方法:
OpenDatebase 打开一个数据库。
Close 关闭当前工作区。
BeginTrans 启动一个事物。
CommitTrans 提交当前事物。
RollBack 回滚当前事物。
打开数据库
顶点
我们调用Workspace的OpenDatabase方法打开一个数据库。
例:
Dim db As DataBase
Set db=OpenDatabase(dbname,exc,readonly,source)
其中:
dbname 数据库文件名。(对于单表数据库为路径)
exc=True 表示排它地打开数据库。
=False 表示可读写地打开数据库。
readonly=True 表示只读地打开数据库。
=False 表示可读写地打开数据库。
source 数据源名,用于指定打开的数据库类型。
例如:"FoxPro 2.5"、"ODBC;DSN=..."
创建记录集
顶点
我们DataBase使用对象的OpenRecordSet方法打开一个记录集。
例:
Dim rs As RecordSet
Set rs=db.OpenRecordSet(source,type)
其中:
source 指定记录集的内容,它可以是一个表名、查询名或SQL语句。
type 创建记录集的类型。
=dbOpenTable表型记录集。
=dbOpenDynaset动态型记录集。
=dbOpenSnapshot快照型记录集。
对记录集的操作详见《数据控件》。
事物处理
顶点
事物是对数据库所做的一系列改变。我们完成一项任务往往需要多步操作,而当其中一步出错后,以前的所有操作应取消,这时我们必需使用事物。首先启动事物,开始执行所有操作,当所有操作全部结束时,我们就提交事物。当发生错误时,我们就回滚事物。
例:
On Error Goto LE
BeginTrans
db.Execute"SQL语句1"
db.Execute"SQL语句2"
...
CommitTrans
...
LE:RollBack
访问ODBC数据库
顶点
要访问ODBC数据库需要两步。
首先需要在Windows95/98或WindowsNT的控件面板中设置ODBC数据源名(DSN)。
然后在OpenDatabase方法的Source参数中使用该数据源名。
例:访问Microsoft SQL Server
Source="ODBC;DSN=MyDSN;UID=sa;PWD=xx;DataBase=pubs"
具体说明详见RecordSource属性。
解决方案 »
- 刷卡得到商品条码的过程是怎样的。程序中如何接收到这个条码?哪里有这方面的资料?
- VS2005中VB.net乱码问题
- len函数不能区别中英文该怎么办啊,有替代它的函数吗??len("中国"),返回值是2而不是4,我要的是中文按双字节计算,英文按单字节计算!
- 如何显示特定的记录,高手请帮忙
- 怎样让form1在加载的时候就是最大化。17,15的也自动判断?
- 关于用VB控制鼠标的问题请大家帮忙解决 谢谢!
- 给大家说一个笑话。
- 用ADOX建立数据表字段时,怎样建立自动编号的“ID”字段???
- 我读的是大专,快毕业了,VB学得也一般 我想去参加培训MCSD 还是参加那种培训呢 请高手指点
- 请问如何支持滚轮鼠标,如支持在TEXTBOX中或LIST控件中的滚动!
- 如何改变 picture 控件 中的图?????
- 请问在datagrid中如何判断某一行是空的(在添加新行前)?
网址:http://www.vbeden.com/希望你能够学好做好你的数据库程序,祝你能够学到真正有用的东西!