vb中data控件的使用
在vb中能不能应用data控件和SQL数据库连接,在连接属性里怎么没有SQL这个选项,难道只能连接accse之类的?请高手指教!能的话,请介绍一下过程!奖励分大大的有哦!...
在vb中能不能应用data控件和SQL数据库连接,在连接属性里怎么没有SQL这个选项,难道只能连接accse之类的?请高手指教!能的话,请介绍一下过程!奖励分大大的有哦!
在线等
回答者:湘湖泛舟,请不要生气了,呵呵!你早这样回答问题不就好了吗,不管对不对,我还能试试。前边的回答和不回答有什么两样,呵呵!好了,不管怎么样,现在还是要谢谢你的!thank you! 展开
在线等
回答者:湘湖泛舟,请不要生气了,呵呵!你早这样回答问题不就好了吗,不管对不对,我还能试试。前边的回答和不回答有什么两样,呵呵!好了,不管怎么样,现在还是要谢谢你的!thank you! 展开
展开全部
在控件箱中的Data控件是VB用于数据库操作的控件,双击Data控件或单击后在体上拖动出控件的大小,都可以看到Data控件的外观
1.Data控件的常用属性
(1)Connect属性
Connect属性用来指定该数据控件所要链接的数据库格式,默认值为Access,其他还包括dBASE、FoxPro、Excel等。
(2)DatabaseName属性
DatabaseName属性是用于确定数据控件使用的数据库的完整路径。如果链接的Access
数据库,就可单击按钮定位.mdb文件。例如,选择"C:\dbbook.mdb"文件。
(3)RecordSource属性
RecordSource属性用于指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名。在属性窗口中单击下拉箭头在列表中选出数据库中的记录来源。例如,选择客户信息表"Customers"。
(4)RecordsetType属性
RecordsetType属性用于指定数据控件存放记录的类型,包含表类型记录集、动态集类型记录集和快照类型记录集,默认为动态集类型。
¡表类型记录集(Table):包含实际表中所有记录,这种类型可对记录进行添加、删除、
修改、查询等操作,直接更新数据。
¡动态集类型记录集(Dynaset):可以包含来自于一个或多个表中记录的集合,即能从
多个表中组合数据,也可只包含所选择的字段。这种类型可以加快运行的速度,但不能自动更新数据。
¡快照类型记录集(Snapshot):与动态集类型记录集相似,但这种类型的记录集只能读不能更改数据。
(5)BOFAction和EOFAction属性
在运行时用户通过单击数据控件的指针按钮可移动记录到开始或结尾,BOFAction属性是指当用户移动到开始时程序将执行的操作,EOFAction指当用户移动到结尾时程序将执行的操作。
EOFAcfion值为0(MoveFirst)是将第一笔记录作为当前记录,为1(BOF);9记录的开头。
EOFAction值为0(Move
Last)是将最后一笔记录作为当前记录,为1(EOF)指记录的末尾,为2(AddNew)移动到记录结尾并自动添加一记录。
2.Data控件常用的方法
(1)AddNew方法
AddNew用于添加一个新记录,新记录的每个字段如果有默认值将以默认值表示,如果没有则为空白。
例如,给Data1的记录集添加新记录:
Data1.Recordset.AddNew
(2)Delete方法
Delete用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。
(3)Edit方法
Edit用于对可更新的当前记录进行编辑修改。
(4)Find方法群组
Find方法群组是用于查找记录,包含FindFirst、FindLast、FindNext和FindPreviou方法,这4种方法查找的起点不同
。
Find方法
查找起点
查找方向
FindFirst
第一个记录
向后查找
FindLast
最后一个记录
向前查找
FindNext
当前记录
向后查找
FindRrevious
当前记录
向前查找
例如,查找"客户号"字段为"10002"的记录:
Datal.Recordset.FindFirst″客户号=′10002",
If
Datal.Recordset.NoMatchThen
′如果没找到
MsgBox″找不到10002号客户″
End
If
通常当查找不到符合条件的记录时,需要显示信息提示用户,因此使用NoMatch属性,当使用Find或Seek方法找不到相符的记录时,NoMatch属性为True。
(5)Move方法群组
Move方法群组是用于移动记录,包含MoveFirst、MoveLast、MoveNext和MovePrevious
方法,这四种方法分别是移到第一笔记录、移到最后一笔记录、移到下一笔记录和移到前一笔记录。
注意:
当在最后一个记录时,如果使用了MoveNext方法时EOF的值会变为True,如果再使
用MoveNext方法就会出错。对于MovePrevious方法如果前移,结果也是同样。
(6)Refresh方法
如果DatabaseName、ReadOnly、Exclusive或Connect属性的设置值发生改变,可以使用Refresh方法打开或重新打开数据库,用Refresh方法可以更新数据控件的集合内容。
(7)Seek方法
Seek方法适用于数据表类型(Table)记录集,通过一个已被设置为索引(Index)的字段,查找符合条件的记录,并使该记录为当前记录。
语法:
记录集.Seek比较式,key1,key2,...,key13
例如,当索引为"客户号"字段时,查找客户号为"10005"的记录:
Data1.Recordset.Seek″:″,″10005″
(8)Update方法
Update方法用于将修改的记录内容保存到数据库中。
(9)UpdateControls方法
UpdateControls方法可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值。当在与数据控件链接的控件中修改了记录内容,可以用UpdateControls方法使这些控件显示恢复原来的值。
3.Data控件常用的事件
(1)Reposition事件
Reposition事件是当某一个记录成为当前记录之后触发。通常利用该事件对当前记录的数据内容进行计算,触发该事件有以下几种原因:
¡单击数据控件的某个按钮,进行记录的移动。
¡使用Move方法群组。
¡使用Find方法群组。
¡其他可改变当前记录的属性或方法。
(2)Validate事件
Validate事件与Reposition事件不同,是当某一记录成为当前记录之前,或是在Update、Delete、Unload或Close操作之前触发。
事件的定义如下:
语法:
Private
Sub
Data1_Validate
(action
As
Integer
,save
As
Integer)
其中:
¡action:用来指示引发这种事件的操作。
¡Save:用来指定被链接的数据是否修改了。
例如,在Validate事件触发时确定记录内容是否修改,如果不修改则恢复:
Private
Sub
Data1_Validate(Action
As
Integer
,Save
As
Integer)
Dim
mag
if
Save=True
Then
mag=MsgBox(″要保存修改吗?″
,vbYesNo)
If
mag=vbNo
Then
Save=False
Data1.UpdateControls
′恢复原先内容
End
if
EndIf
End
Sub
二、与控件绑定
控件箱中的常用控件PictureBox、Label、TextBox、CheckBox、Image、OLE、ListBox
和ComboBox控件都能和Data的Recordset的一个字段绑定,与Data控件绑定的控件称为数据感知控件。
1.数据感知控件的相关属性
¡DataSource属性:用于在下拉列表中选择想要绑定的控件名称。
¡DataField属性:用于在下拉列表中选择要显示的字段名称。
2.绑定数据控件的步骤
数据感知控件绑定的过程不需要加入任何程序代码,将文本框txtOrderNo与Dara1绑定的步骤如下:
(1)将数据控件(Data1)放置在窗体中,将数据感知控件TextBox放置在窗体中并改名为txtOrderNo。
(2)设置Data1的DatabaseName属性为"C:\dbbook.Mdb"文件,设置Data1的RecordSource属性为"Orders"表。
(3)设置txtOrderNo的DataSource属性为Data1,设置txtOrderNo的DataField属性为"定单号"字段。
[例Ex_Data1_out]创建一个订购图书的客户信息的输入界面,用文本框绑定Data控件,txtOrderNo、txtCuNo和txtDate分别显示"Customers"表的各字段。
界面设计,窗体由4个按钮、3个标签、3个文本框和1个Dara控件组成。
窗体文本框控件和Data控件的属性设置,标签和按钮属性设置省略。
对 象
控件名
属性名
属性值
TextBox
txtCuNo
txtOrderNo
txtDate
Text
DataSource
DataField
Text
DataSource
DataField
Text
DataSource
DataField
空
Data1
客户号
空
Data1
定单号
空
Data1
订购日期
Data
Data1
Caption
DataBaseName
RecondSource
客户信息
C:\dbbook.mdb
Oders
程序代码如下:
Option
Explicit
Private
Sub
cmdAdd_Click()
′添加记录
Data1.Recordset.AddNew
Data1.Recordset.Update
Data1.Recordset.MoveLast
End
Sub
Private
Sub
cmdDelete_Click()
′删除记录
Dim
mag
mag=
MsgBox(″要删除吗?
″
,vbYesNo,″删除记录″
)
If
mag=VbYes
Then
Data1.Recordset.Delere
Data1.Recordset,MoveLast
End
If
End
Sub
当删除最后一个记录后,如果再删除就会出错,因此每次删除完将当前记录移到最后一个。
Private
Sub
cmdend_Click()
End
End
Sub
Private
Sub
cmdedit_Click()
′修改记录
Data1.Recordset.Edit
Data1.Recordset.Update
End
Sub
Private
Sub
Data1_Validate(Action
As
Integer,
Save
As
Integer)
′确定是否修改,如不修改恢复原先内容
Dim
mag
If
Save
=
True
Then
mag
=
MsgBox("save?",
vbYesNo,
"save
record")
If
mag
=
vbNo
Then
Save
=
False
Data1.UpdateControls
End
If
End
If
End
Sub
1.Data控件的常用属性
(1)Connect属性
Connect属性用来指定该数据控件所要链接的数据库格式,默认值为Access,其他还包括dBASE、FoxPro、Excel等。
(2)DatabaseName属性
DatabaseName属性是用于确定数据控件使用的数据库的完整路径。如果链接的Access
数据库,就可单击按钮定位.mdb文件。例如,选择"C:\dbbook.mdb"文件。
(3)RecordSource属性
RecordSource属性用于指定数据控件所链接的记录来源,可以是数据表名,也可以是查询名。在属性窗口中单击下拉箭头在列表中选出数据库中的记录来源。例如,选择客户信息表"Customers"。
(4)RecordsetType属性
RecordsetType属性用于指定数据控件存放记录的类型,包含表类型记录集、动态集类型记录集和快照类型记录集,默认为动态集类型。
¡表类型记录集(Table):包含实际表中所有记录,这种类型可对记录进行添加、删除、
修改、查询等操作,直接更新数据。
¡动态集类型记录集(Dynaset):可以包含来自于一个或多个表中记录的集合,即能从
多个表中组合数据,也可只包含所选择的字段。这种类型可以加快运行的速度,但不能自动更新数据。
¡快照类型记录集(Snapshot):与动态集类型记录集相似,但这种类型的记录集只能读不能更改数据。
(5)BOFAction和EOFAction属性
在运行时用户通过单击数据控件的指针按钮可移动记录到开始或结尾,BOFAction属性是指当用户移动到开始时程序将执行的操作,EOFAction指当用户移动到结尾时程序将执行的操作。
EOFAcfion值为0(MoveFirst)是将第一笔记录作为当前记录,为1(BOF);9记录的开头。
EOFAction值为0(Move
Last)是将最后一笔记录作为当前记录,为1(EOF)指记录的末尾,为2(AddNew)移动到记录结尾并自动添加一记录。
2.Data控件常用的方法
(1)AddNew方法
AddNew用于添加一个新记录,新记录的每个字段如果有默认值将以默认值表示,如果没有则为空白。
例如,给Data1的记录集添加新记录:
Data1.Recordset.AddNew
(2)Delete方法
Delete用于删除当前记录的内容,在删除后应将当前记录移到下一个记录。
(3)Edit方法
Edit用于对可更新的当前记录进行编辑修改。
(4)Find方法群组
Find方法群组是用于查找记录,包含FindFirst、FindLast、FindNext和FindPreviou方法,这4种方法查找的起点不同
。
Find方法
查找起点
查找方向
FindFirst
第一个记录
向后查找
FindLast
最后一个记录
向前查找
FindNext
当前记录
向后查找
FindRrevious
当前记录
向前查找
例如,查找"客户号"字段为"10002"的记录:
Datal.Recordset.FindFirst″客户号=′10002",
If
Datal.Recordset.NoMatchThen
′如果没找到
MsgBox″找不到10002号客户″
End
If
通常当查找不到符合条件的记录时,需要显示信息提示用户,因此使用NoMatch属性,当使用Find或Seek方法找不到相符的记录时,NoMatch属性为True。
(5)Move方法群组
Move方法群组是用于移动记录,包含MoveFirst、MoveLast、MoveNext和MovePrevious
方法,这四种方法分别是移到第一笔记录、移到最后一笔记录、移到下一笔记录和移到前一笔记录。
注意:
当在最后一个记录时,如果使用了MoveNext方法时EOF的值会变为True,如果再使
用MoveNext方法就会出错。对于MovePrevious方法如果前移,结果也是同样。
(6)Refresh方法
如果DatabaseName、ReadOnly、Exclusive或Connect属性的设置值发生改变,可以使用Refresh方法打开或重新打开数据库,用Refresh方法可以更新数据控件的集合内容。
(7)Seek方法
Seek方法适用于数据表类型(Table)记录集,通过一个已被设置为索引(Index)的字段,查找符合条件的记录,并使该记录为当前记录。
语法:
记录集.Seek比较式,key1,key2,...,key13
例如,当索引为"客户号"字段时,查找客户号为"10005"的记录:
Data1.Recordset.Seek″:″,″10005″
(8)Update方法
Update方法用于将修改的记录内容保存到数据库中。
(9)UpdateControls方法
UpdateControls方法可以从数据控件的记录集中再取回原先的记录内容,即恢复原先值。当在与数据控件链接的控件中修改了记录内容,可以用UpdateControls方法使这些控件显示恢复原来的值。
3.Data控件常用的事件
(1)Reposition事件
Reposition事件是当某一个记录成为当前记录之后触发。通常利用该事件对当前记录的数据内容进行计算,触发该事件有以下几种原因:
¡单击数据控件的某个按钮,进行记录的移动。
¡使用Move方法群组。
¡使用Find方法群组。
¡其他可改变当前记录的属性或方法。
(2)Validate事件
Validate事件与Reposition事件不同,是当某一记录成为当前记录之前,或是在Update、Delete、Unload或Close操作之前触发。
事件的定义如下:
语法:
Private
Sub
Data1_Validate
(action
As
Integer
,save
As
Integer)
其中:
¡action:用来指示引发这种事件的操作。
¡Save:用来指定被链接的数据是否修改了。
例如,在Validate事件触发时确定记录内容是否修改,如果不修改则恢复:
Private
Sub
Data1_Validate(Action
As
Integer
,Save
As
Integer)
Dim
mag
if
Save=True
Then
mag=MsgBox(″要保存修改吗?″
,vbYesNo)
If
mag=vbNo
Then
Save=False
Data1.UpdateControls
′恢复原先内容
End
if
EndIf
End
Sub
二、与控件绑定
控件箱中的常用控件PictureBox、Label、TextBox、CheckBox、Image、OLE、ListBox
和ComboBox控件都能和Data的Recordset的一个字段绑定,与Data控件绑定的控件称为数据感知控件。
1.数据感知控件的相关属性
¡DataSource属性:用于在下拉列表中选择想要绑定的控件名称。
¡DataField属性:用于在下拉列表中选择要显示的字段名称。
2.绑定数据控件的步骤
数据感知控件绑定的过程不需要加入任何程序代码,将文本框txtOrderNo与Dara1绑定的步骤如下:
(1)将数据控件(Data1)放置在窗体中,将数据感知控件TextBox放置在窗体中并改名为txtOrderNo。
(2)设置Data1的DatabaseName属性为"C:\dbbook.Mdb"文件,设置Data1的RecordSource属性为"Orders"表。
(3)设置txtOrderNo的DataSource属性为Data1,设置txtOrderNo的DataField属性为"定单号"字段。
[例Ex_Data1_out]创建一个订购图书的客户信息的输入界面,用文本框绑定Data控件,txtOrderNo、txtCuNo和txtDate分别显示"Customers"表的各字段。
界面设计,窗体由4个按钮、3个标签、3个文本框和1个Dara控件组成。
窗体文本框控件和Data控件的属性设置,标签和按钮属性设置省略。
对 象
控件名
属性名
属性值
TextBox
txtCuNo
txtOrderNo
txtDate
Text
DataSource
DataField
Text
DataSource
DataField
Text
DataSource
DataField
空
Data1
客户号
空
Data1
定单号
空
Data1
订购日期
Data
Data1
Caption
DataBaseName
RecondSource
客户信息
C:\dbbook.mdb
Oders
程序代码如下:
Option
Explicit
Private
Sub
cmdAdd_Click()
′添加记录
Data1.Recordset.AddNew
Data1.Recordset.Update
Data1.Recordset.MoveLast
End
Sub
Private
Sub
cmdDelete_Click()
′删除记录
Dim
mag
mag=
MsgBox(″要删除吗?
″
,vbYesNo,″删除记录″
)
If
mag=VbYes
Then
Data1.Recordset.Delere
Data1.Recordset,MoveLast
End
If
End
Sub
当删除最后一个记录后,如果再删除就会出错,因此每次删除完将当前记录移到最后一个。
Private
Sub
cmdend_Click()
End
End
Sub
Private
Sub
cmdedit_Click()
′修改记录
Data1.Recordset.Edit
Data1.Recordset.Update
End
Sub
Private
Sub
Data1_Validate(Action
As
Integer,
Save
As
Integer)
′确定是否修改,如不修改恢复原先内容
Dim
mag
If
Save
=
True
Then
mag
=
MsgBox("save?",
vbYesNo,
"save
record")
If
mag
=
vbNo
Then
Save
=
False
Data1.UpdateControls
End
If
End
If
End
Sub
展开全部
解答如下
在DATA1的属性页上设置相关属性
1.connect属性直接输入以下格式文本,不要引号:
driver={SQL Server};server=21.209.160.190;uid=sa;pwd=;database=余额表库
2.在DatabaseName属性中直接输入要调用的库名称:
本例:余额表库
3.RecordSource属性设置直接输入要打开的表名称
如:日志
本地测试已通过,环境VB6+SQL2000
在DATA1的属性页上设置相关属性
1.connect属性直接输入以下格式文本,不要引号:
driver={SQL Server};server=21.209.160.190;uid=sa;pwd=;database=余额表库
2.在DatabaseName属性中直接输入要调用的库名称:
本例:余额表库
3.RecordSource属性设置直接输入要打开的表名称
如:日志
本地测试已通过,环境VB6+SQL2000
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询