当前位置:首页 > 问答 > 正文

用VB怎么连Access数据库,搞定视频资料管理其实没那么难

(引用来源:根据CSDN博客园VBAccess相关技术文章、微软官方MSDN文档、个人项目实践经验综合整理)

用VB怎么连Access数据库,搞定视频资料管理其实没那么难,你别看又是数据库又是编程的,好像特别专业,其实VB这门语言本来就是给非专业程序员快速开发用的,它的全称Visual Basic,重点就在这个Basic上,意思就是基础、简单,所以你用VB来管你电脑里那些乱七八糟的电影、教程视频、家庭录像,真的是杀鸡用牛刀,大材小用,但特别顺手,下面我就用最白的话,一步一步告诉你怎么弄。

你得有个Access数据库文件,这个文件就是你所有视频信息的仓库,你不用管它里面多复杂,你就当它是一个超级Excel表格,能存很多张表,你先打开Microsoft Access软件,新建一个空数据库,给它起个名字,我的视频库.accdb”,存到你熟悉的位置,然后呢,在这个数据库里创建一张表,这张表就是用来记录视频信息的,表里面你得设计一些列,也就是字段,ID(自动给视频一个编号,这个Access会自动帮你弄)、视频名称、文件路径、视频类型(是电影还是纪录片?)、主演或讲师、添加日期、我的评分、备注说明等等,你就根据你最关心什么信息来设计这些列,设计好了保存一下,这张表就叫“VideoTable”吧,好了,你的仓库盖好了,里面也有了货架(表)。

就是重头戏,用VB怎么连接上这个仓库,打开你的VB6.0开发环境,新建一个标准EXE工程,在窗体上随便放几个按钮、文本框、标签什么的,这些是等会儿操作用的,连接数据库,你需要用一个叫ADO的东西,听着高大上,其实很简单,你就在VB界面上,选择“工程”菜单,点“引用”,然后在弹出的长长列表里,找到“Microsoft ActiveX Data Objects 2.8 Library”或者版本号低一点的比如2.5、2.1,勾选它,点确定,这就相当于给你的VB程序安装了一个能和Access数据库对话的翻译官。

翻译官请来了,下一步就是建立连接,在你的代码里,一般是窗体的加载事件或者某个按钮的点击事件里,写这么几行代码,我先写出来,再一句句告诉你啥意思。

Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim connStr As String

用VB怎么连Access数据库,搞定视频资料管理其实没那么难

connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\我的资料\我的视频库.accdb;" ‘ 注意这里的路径要换成你实际存放数据库的路径 conn.Open connStr

第一行:Dim conn As New ADODB.Connection,Dim是声明变量的意思,conn是我给这个连接对象起的名字,As New就是说新建一个,ADODB.Connection就是那个翻译官里专门负责连接的部分。

第二行:Dim rs As New ADODB.Recordset,rs是我给记录集对象起的名字,这个对象厉害啦,它就像是你派去仓库里取货或者放货的机器人,你通过它来对数据库里的表进行增删改查。

第三行:Dim connStr As String,connStr是一个字符串变量,用来存放连接数据库所需要的“密码”。

用VB怎么连Access数据库,搞定视频资料管理其实没那么难

第四行:connStr = "Provider=...”,这一长串就是连接字符串,是告诉翻译官具体怎么连,Provider=Microsoft.ACE.OLEDB.12.0 是说你用的数据库驱动是ACE.OLEDB.12.0,这个对于Access 2007及以后版本的.accdb文件比较通用,如果你的数据库是旧版的.mdb文件,可能需要换成"Provider=Microsoft.Jet.OLEDB.4.0",Data Source=后面跟着的就是你那个“我的视频库.accdb”文件的完整路径,一定要写对。

第五行:conn.Open connStr,这就是命令翻译官,用刚才设置好的连接字符串,正式去连接数据库,如果路径没错,数据库没被占用,这行代码执行完,你的VB程序就和Access数据库手牵手连上了。

连上之后,你就可以为所欲为了,比如你想把所有视频记录都显示出来,你就可以写:

rs.Open "SELECT * FROM VideoTable", conn, adOpenStatic, adLockReadOnly List1.Clear ‘ 假设你窗体上有个列表框叫List1 Do While Not rs.EOF List1.AddItem rs.Fields("视频名称").Value & " - " & rs.Fields("主演或讲师").Value rs.MoveNext Loop rs.Close

用VB怎么连Access数据库,搞定视频资料管理其实没那么难

rs.Open后面跟的SQL语句"SELECT * FROM VideoTable"意思就是从VideoTable表里选取所有数据,conn就是刚才建立好的连接,后面两个参数是设置记录集的打开方式,先不用深究,然后Do While循环就是让机器人rs从第一条记录开始,一直走到最后一条记录(EOF),在循环里,我把每条记录的“视频名称”和“主演”字段的值取出来,拼成一个字符串,添加到列表框中显示,rs.MoveNext是让机器人移动到下一条记录,最后操作完了,记得rs.Close关闭记录集。

如果你想添加一个新视频记录呢?比如通过一个按钮,把几个文本框里输入的内容存到数据库里。

rs.Open "VideoTable", conn, adOpenDynamic, adLockOptimistic rs.AddNew rs.Fields("视频名称").Value = Text1.Text ‘ 假设Text1是输入视频名的文本框 rs.Fields("文件路径").Value = Text2.Text rs.Fields("视频类型").Value = Text3.Text ‘ ... 其他字段赋值 rs.Update rs.Close

这次rs.Open直接用了表名"VideoTable",rs.AddNew是告诉机器人要新增一条记录,然后依次给各个字段赋值,值就从文本框的Text属性来,rs.Update是最关键的一步,它才真正把这条新记录保存到数据库里,不然你只是放在内存里,程序一关就没了。

删除和修改记录也是类似的思路,先找到你要操作的那条记录,然后调用rs.Delete或者修改字段值后再rs.Update。

非常重要的一点,当你的程序所有数据库操作都做完,要退出的时候,一定要记得关闭连接,释放资源,就在窗体的Unload事件里写:conn.Close,这就好比你去朋友家做客,离开的时候要关门,是个好习惯。

你看,整个流程下来,核心就是:引用ADO库 -> 用连接字符串打开连接 -> 用记录集对象进行增删改查 -> 关闭连接,你根本不需要去背那些复杂的数据库理论,就照着这个模式,完全能做一个满足自己需求的视频资料管理小工具,你可以给它加上按名称搜索、按类型筛选、双击记录直接用系统默认播放器打开视频文件(用Shell函数执行文件路径)等功能,这样一来,你就不用再在茫茫文件夹里找视频了,一切都在你的小软件里井然有序,怎么样,是不是没那么难?