关于vb6的data控件的recordset对象的一些问题
2.seek方法到底怎么用,index是干什么的
3.我用find方法查找字符串与整形字段能成功,可是查找日期型就不行了,怎么办?
就这么多了。我只想实现简单的查找、添加、删除、编辑记录的功能,就用DATA控件。谢谢了! 展开
'VB数据库入门演示
'注意:VB可视化数据库管理器不能创建有密码的ACCESS mdb数据库文件或追加密码,不过可以使用MicrosoftAccess来管理mdb数据库文件密码或使用“VB追加mdb数据库密码.rar”来给mdb数据库文件追加密码。
'注意:因为ACCESS mdb数据库文件的密码很弱并且网上有众多的ACCESS mdb数据库文件密码查询器,所以ACCESS mdb数据库文件是否有密码已经无关紧要了。
'注意:“VB追加mdb数据库密码.rar”只能用于给没有密码的mdb数据库文件追加密码,不能进行密码移除或密码更改。
'注意:本程序使用了DATA控件连接MDB数据库,发布的程序若为免安装版的话则必须有“DAO350.DLL”“MSJET35.DLL”“VB5DB.DLL”三个文件,并且需要注册注册“DAO350.DLL”“MSJET35.DLL”,否则程序将不能正常运行。
Option Explicit
Private Sub Form_Load()
'装载数据库
'数据库信息检查-错误代码跳转代码
On Error GoTo Errmdbs:
''''' '有密码的数据库连接
''''' Data1.Connect = ";PWD=123456"
''''' Data1.DatabaseName = App.Path & "\MDB数据库.mdb.密码123456"
''''' If Dir(App.Path & "\MDB数据库.mdb.密码123456", vbReadOnly Or vbHidden Or vbSystem) = "" Then
''''' MsgBox "系统错误:指定的数据库文件不存在或已损坏!", 0 + 16 + 0, "程序终止"
''''' End
''''' End If
'无密码数据库连接
Data1.Connect = "Access"
Data1.DatabaseName = App.Path & "\MDB数据库.mdb"
If Dir(App.Path & "\MDB数据库.mdb", vbReadOnly Or vbHidden Or vbSystem) = "" Then
MsgBox "系统错误:指定的数据库文件不存在或已损坏!", 0 + 16 + 0, "程序终止"
End
End If
Data1.RecordSource = "MDBdate" '数据库表项
Data1.Refresh '激活Data1控件操作,使之对数据库的操作有效
'Data1.Recordset.Update '刷新数据,某些情况或方法下需要刷新数据,否则数据不会被保存进数据库
'Data1.Recordset.Close '关闭Data1控件连接的数据库,使用前注意是否需要使用“Data1.Recordset.Update”保存数据。
'Data1.Recordset.AbsolutePosition '获取当前数据指针的序号
'Data1.Recordset.MoveFirst '选中第一行数据
'Data1.Recordset.MoveLast '选中最后一行数据
'Data1.Recordset.Move n '选中第n行数据(注意第一行的序号=0)
Exit Sub
'检测到数据库相关错误
Errmdbs:
If Error = "密码无效。" Then
MsgBox "严重:数据库登录密码错误,程序终止!", 0 + 16 + 0, "错误"
End
End If
MsgBox "系统错误:指定的数据库文件不存在或已损坏!", 0 + 16 + 0, "程序终止"
End
End Sub
Private Sub Command2_Click()
'新增数据
Data1.Recordset.AddNew '新增数据功能激活(默认为从最后一排追加)
'数据增加
Data1.Recordset.Fields(0) = "3" '编号信息,数据类型为 Integer
Data1.Recordset.Fields(1) = "王五" '姓名信息,数据类型为 String
Data1.Recordset.Fields(2) = "789" '密码信息,数据类型为 String
Data1.Recordset.Fields(3) = "
" '路径信息,数据类型为 String
Data1.Recordset.Update '刷新数据,某些情况或方法下需要刷新数据,否则数据不会被保存进数据库
Data1.Refresh '激活Data1控件操作,使之对数据库的操作有效
End Sub
Private Sub Command3_Click()
'删除数据
Data1.Recordset.MoveLast '选中最后一行数据
Data1.Recordset.Delete '删除数据功能激活(默认为删除第一行数据)
Data1.Refresh '激活Data1控件操作,使之对数据库的操作有效
End Sub
Private Sub Command4_Click()
'搜索数据
Data1.Recordset.FindFirst "姓名 like '李四'"
'搜索结果判断
If Data1.Recordset.NoMatch = False Then
MsgBox "找到 姓名=李四 的数据行", 0 + 64 + 0, "成功"
Else
MsgBox "没有找到 姓名=李四 的数据行", 0 + 16 + 0, "失败"
End If
'MsgBox Data1.Recordset.AbsolutePosition '获取当前数据指针的序号
End Sub
Private Sub Command5_Click()
'修改数据
Data1.Recordset.Move 1 '选中第2行的数据 第一行的序号是0
Data1.Recordset.Edit '修改数据功能激活(默认为修改第一行的数据)
'写如新数据
Data1.Recordset.Fields(0) = "31"
Data1.Recordset.Fields(1) = "新王五"
Data1.Recordset.Fields(2) = "新密码789"
Data1.Recordset.Fields(3) = "\\新789\新789"
Data1.Recordset.Update '刷新数据,某些情况或方法下需要刷新数据,否则数据不会被保存进数据库
Data1.Refresh '激活Data1控件操作,使之对数据库的操作有效
End Sub
Private Sub Command6_Click()
'导出数据(默认导出除第一行数据)
Data1.Recordset.Move 1 '选中第2行的数据 第一行的序号是0
Label1.Caption = Data1.Recordset.Fields(0)
Label2.Caption = Data1.Recordset.Fields(1)
Label3.Caption = Data1.Recordset.Fields(2)
Label4.Caption = Data1.Recordset.Fields(3)
End Sub
Private Sub Command7_Click()
'获取数据总行
Data1.Recordset.MoveLast '将指针移到表的最后一笔记录 加上这一行主要是为了减少因为数据库本身损坏等引起的错误答案。如果指针不能指向到最后一行系统会报告错误。
Label6.Caption = Data1.Recordset.RecordCount
End Sub
Private Sub Command8_Click()
'自动编号思路
'遍历数据库总行数,同步编辑每行的编号项下的值来达到批量修改编号的目的
Data1.Recordset.MoveLast '将指针移到表的最后一笔记录 加上这一行主要是为了减少因为数据库本身损坏等引起的错误答案。如果指针不能指向到最后一行系统会报告错误。
Dim i As Long
For i = 0 To Data1.Recordset.RecordCount - 1
Data1.Recordset.MoveFirst '从第一行开始,方向向下。(data控件必须加上这行,否则搜索方向会混乱)
Data1.Recordset.Move i
Data1.Recordset.Edit '修改数据功能激活
Data1.Recordset.Fields(0) = i + 1 '写入信息(自增量编号)
Data1.Recordset.Update '刷新数据,某些情况或方法下需要刷新数据,否则数据不会被保存进数据库
Data1.Refresh '激活Data1控件操作,使之对数据库的操作有效
'Exit For
Next
End Sub
Private Sub Command1_Click()
Data1.Recordset.Close '关闭Data1控件连接的数据库,使用前注意是否需要使用“Data1.Recordset.Update”保存数据。
End
End Sub
VB数据库入门:
1:VB建立数据库文件:
1-1:启动VB编辑器--外接程序(A)--可视化数据管理器(V)--文件(F)--新建(N)--Microsoft Access(M)-Version 7.0 MDB(7)
1-2:创建窗口输入文件名(如 MDB数据库)--保存
进入到数据库窗口
1-3:右键 Properties --新建表(T)
进入到表结构界面
1-4:表名称(N)(如:MDBdate)--添加字段(A)
1-5:名称--类型--大小--固定/可变字段--允许零长度--必要的--等等参数根据情况设置--确定
1-6:循环1-5创建多个表单--关闭
回到了表结构界面,检查无误则--生成表(B)
回到数据库界面
1-7:右键 MDBdate --打开(O)
进入到数据库编辑界面
1-8:添加(A)--根据情况编辑相应信息--更新(U)
1-9:循环1-8添加好多个信息--关闭(C)
回到数据库界面
1-10:至此,数据库建立完成,可以叉掉可视化数据管理器了
2:VB连接数据库文件:
2-1:启动VB编辑器--新建一个工程
2-2:添加控件 工程(P)--部件(O)--勾选上“Microsoft FlexGrid Control 6.0”--应用(A)
2-3:在窗体上画上2个控件 Data1 和 MSFlexGrid1
2-4:Data1控件的基本属性
Data1.Caption="Data1的名字"
Data1.databaseName="Data1要连接到的数据库位置设置" 或 用代码方式 (如 App.Path & "\MDB数据库.mdb")
Data1.RecordSource="Data1连接到的数据库的表名称" 上文中我们新建的表名称是“MDBdate”,所以这里则使用“MDBdate”
Data1.RecordsetType=Data1控件对数据库的操作模式,有3个值 Table=完全控制(即时刷新数据) Dynaset=完全控制(手动保存或代码保存后刷新数据,默认值(推荐值)) Snapshot=只读模式(不能刷新数据)
Data1.Exclusive=False/True 数据库共享还是独占模式(False为共享模式,默认值)
Data1.ReadOnly=False/True 数据库文件是否可被修改。(False为可写模式,默认值)
Data1.Visible=True/False (Data1控件是否可见)
2-5:MSFlexGrid1控件的基本属性
MSFlexGrid1.DataSource="MSFlexGrid1的数据源" (设置为“Data1”即可,因为我们已经用Data1连接到了指定的数据库,MSFlexGrid1大意上就是一个数据显示控件)
2-6:完成,调试代码则可在MSFlexGrid1控件上浏览到数据库数据了。
注意:VB开发环境若使用了DATA控件连接MDB数据库,发布的程序若为免安装版的话则必须有“DAO350.DLL”“MSJET35.DLL”“VB5DB.DLL”三个文件,并且需要注册注册“DAO350.DLL”“MSJET35.DLL”,否则程序将不能正常运行。
注意:VB可视化数据库管理器不能创建有密码的ACCESS mdb数据库文件或追加密码,不过可以使用MicrosoftAccess来管理mdb数据库文件密码或使用“VB追加mdb数据库密码.rar”来给mdb数据库文件追加密码。
注意:因为ACCESS mdb数据库文件的密码很弱并且网上有众多的ACCESS mdb数据库文件密码查询器,所以ACCESS mdb数据库文件是否有密码已经无关紧要了。
注意:“VB追加mdb数据库密码.rar”只能用于给没有密码的mdb数据库文件追加密码,不能进行密码移除或密码更改。
*****************************************************
如果你看到这里 差不多你对data+mdb的基本操作已经会了 功能的完善只需要合理代码组合就可以完成,比如上例删除修改等功能都是针对指定的行,若你搭配上搜易功能则能达到删除或修改指定行的功能,你问的日期型的问题 我没有去测试,估计是声明转型的问题,其次你可以试下拆分日期判断在组合回去的办法试试。另外我这里有个用data+mdb做的给网吧用户用的个人磁盘管理器实例 若你需要可以向我索取。最后祝你成功!
是好东西,但是复制粘贴痕迹颇浓,而且,请点对点回答好吗?好的话一定追加分,谢谢!
2.3问没测试 请等待别人回答 这个是1 4问的回答,代码后面附的VB数据库入门什么的跑题了 不好意思。