1,217
社区成员




Private Sub Command1_Click()
Dim conn As Object ' 数据库连接对象
Dim rs As Object ' 数据集对象
' 先创建连接对象
Set conn = CreateObject("ADODB.Connection")
' 先连接 SQL Server 数据库
' 数据库连接语句很简单,格式如下:
' PROVIDER=MSDASQL;DRIVER={SQL SERVER};SERVER=服务器名或IP地址;UID=用户帐号;PWD=用户密码;DATABASE=数据库名称;
conn.open "PROVIDER=MSDASQL;DRIVER={SQL SERVER};SERVER=localhost;UID=sa;PWD=123456;DATABASE=yourdb;"
' 当然你也可以做一下校验判断连接是否成功,这里我就不做了,直接进入下一步
' 创建数据集对象
Set rs = CreateObject("ADODB.Recordset")
' 现在可以正式查询数据库了,要说明的是这里用的 3,1 是只读方式进行操作,要读写可以改为 3,3,当然还有别的方式
' 具体的你就参考 MSDN 中 ADO 对象的说明吧,不过这两种是比较常用的方式
rs.open "Select * From 表名", conn, 3, 1
' 完成查询过程后可以通过循环语句把数据读出来
Do While Not rs.EOF ' 如果不是最后一条就一直循环
Print rs!字段名1 & vbTab & rs!字段名2
rs.MoveNext ' 将当前操作记录移动到下一条
Loop
rs.Close ' 操作完关闭
Set rs = Nothing ' 释放数据集对象
conn.Close ' 关闭连接对象
Set conn = Nothing ' 释放连接对象
End Sub
当然,在实际运用中,没必要这样查询一次就连接一次数据库,你可以把
数据连接对象定义到模块里,然后申明全局变量,如
' Module1.bas 文件内容
Public conn As Object
然后在程序初始化是或用户登录时去连接数据库,在程序退出时关闭数据连接和释放对象
然后在查询过程中只需要定义数据集对象便可以了,如:
Private Sub Command1_Click()
Dim rs As Object ' 数据集对象
' 创建数据集对象
Set rs = CreateObject("ADODB.Recordset")
rs.open "Select * From 表名", conn, 3, 1
Do While Not rs.EOF ' 如果不是最后一条就一直循环
Print rs!字段名1 & vbTab & rs!字段名2
rs.MoveNext ' 将当前操作记录移动到下一条
Loop
rs.Close ' 操作完关闭
Set rs = Nothing ' 释放数据集对象
End Sub
当然数据库还可以执行数据插入、修改、删除等操作,用起来也很简单,如:
' 删除操作
conn.execute "delete from 表1 where id=1" ' 删除“表1”中“id”字段值为 1 的数据
' 修改数据
conn.execute "update 表1 set 字段1='aaa' where id=1"
' 添加数据方法1(SQL语句添加法)
conn.execute "insert into 表1(字段1,字段2) values ('aaa','bbb')"
' 添加数据方法2(ADO 数据集对象添加法)
Dim rs As Object ' 数据集对象
Set rs = CreateObject("ADODB.Recordset") ' 创建数据集对象
rs.open "Select * From 表名", conn, 3, 3 ' 查询指定数据表
rs.AddNew ' 添加一条记录
' 设置新记录的字段数据
rs!字段名1 = "aaa"
rs!字段名2 = "bbb"
rs.UpdateBatch ' 更新
rs.Close ' 操作完关闭
看完这里你应该对数据库操作有一定了解了,要更深入那就是去了解 SQL 语句以及安全配置问题了。