vbs怎么搞数据库里头的信息读取,简单点教教咋操作吧
- 问答
- 2026-01-12 13:29:45
- 3
基于微软官方VBScript文档和常见ADO数据库操作实践整理)
先搞清楚基础概念 别被“数据库”吓到,你就把它想象成一个高级的Excel表格文件,里面有很多张表(Table),每张表有行(记录)和列(字段),VBS想读它,需要一个“中介司机”,这个司机叫ADO(ActiveX Data Objects),你不需要懂ADO是啥,只要知道用它能打开数据库、执行命令、拿到数据就行。
准备工作:连接数据库 你得告诉VBS你的数据库在哪儿、是哪种类型,常见的像Access数据库(.mdb或.accdb文件)或者SQL Server。
连接Access数据库的例子: 假设你有一个叫“员工信息.mdb”的文件放在D盘根目录,里面有一张表叫“员工表”。
Set conn = CreateObject("ADODB.Connection") ' 创建一个连接对象
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\员工信息.mdb;" ' 告诉它数据库路径和驱动
如果你的Access文件是.accdb格式(2007版以后),Provider要改成:
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\员工信息.accdb;"
连接SQL Server的例子: 如果数据库在服务器上,连接字符串会复杂点,但套路一样:
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=服务器IP或名称;Initial Catalog=数据库名;User ID=用户名;Password=密码;"
核心操作:读取数据
连接成功后,就要发号施令了,这个“命令”就是SQL语句,最简单的就是SELECT * FROM 表名,意思是“从某张表里选所有数据”。
步骤分解:
-
创建命令对象并执行:
Set rs = CreateObject("ADODB.Recordset") ' 创建一个记录集对象,用来装查询结果 sql = "SELECT * FROM 员工表" ' 写一句SQL查询语句 rs.Open sql, conn ' 执行查询,结果会放到rs这个对象里这里
rs就像个临时表格,把数据库里“员工表”的所有内容都装进来了。 -
移动光标和读取数据:
rs里面有个看不见的“光标”,刚打开时指着第一条记录前面,你要移动它才能读到数据。rs.MoveFirst:移到第一条rs.MoveNext:移到下一条rs.EOF:这是个属性,如果为True表示光标已经移到最后一条记录之后了(End Of File)。
读取具体某列的数据用
rs("字段名")或rs(字段序号)(序号从0开始),员工表”里有“姓名”、“工号”两个字段。 -
循环读出所有记录: 通常配合
While Not rs.EOF ... Wend循环来读:While Not rs.EOF ' 只要没到最后一条就继续循环 ' 读出当前光标指向的这条记录的字段值 name = rs("姓名") ' 读取"姓名"字段的值 id = rs("工号") ' 读取"工号"字段的值 ' 你可以做任何操作,比如用MsgBox弹窗显示 MsgBox "员工姓名:" & name & ",工号:" & id ' 或者用WScript.Echo在命令行显示(如果是在cscript下运行) ' WScript.Echo "员工姓名:" & name & ",工号:" & id rs.MoveNext ' 重要!读完一条后,把光标移到下一条 Wend
完整代码示例(读取Access数据库) 把上面的步骤连起来,一个完整的脚本如下:
' 创建连接
Set conn = CreateObject("ADODB.Connection")
' 连接数据库,请根据实际情况修改路径和文件名
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\员工信息.mdb;"
' 执行查询
Set rs = CreateObject("ADODB.Recordset")
sql = "SELECT * FROM 员工表"
rs.Open sql, conn
' 循环读取并显示数据
While Not rs.EOF
MsgBox "姓名:" & rs("姓名") & ",工号:" & rs("工号") & ",部门:" & rs("部门")
rs.MoveNext
Wend
' 关闭连接,释放资源(好习惯)
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
重要提醒和常见问题
-
错误处理: 数据库操作容易出问题(比如路径错了、表名错了),最好加个简单错误处理,让脚本失败时有个提示:
On Error Resume Next ' 发生错误继续执行 ' ...你的数据库操作代码... If Err.Number <> 0 Then MsgBox "出错了!错误描述:" & Err.Description End If -
字段名大小写: 注意SQL语句里的字段名要和数据库里的一致,有时区分大小写。
-
密码保护: 如果数据库有密码,连接字符串里要加上:
Jet OLEDB:Database Password=你的密码;(对于Access)。 -
运行方式: 如果数据量多,用
MsgBox会弹到手软,建议保存到文件或用WScript.Echo,然后在命令行用cscript 脚本名.vbs运行。
总结一下就是三步曲:连接数据库 -> 执行查询语句 -> 循环读取结果。 你先拿个最简单的Access数据库文件试试手,成功一次就有感觉了,多改改SQL语句(比如试试SELECT 姓名 FROM 员工表 WHERE 部门='销售部'),慢慢就熟了。

本文由黎家于2026-01-12发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/79336.html
