第一个为连接Access数据库的例子,第二个为连接Excel数据库的例子。
- Sub test1()
- '创建对数据库的连接
- Dim cn As ADODB.Connection
- Set cn = New ADODB.Connection
- cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\access.mdb"
-
- '通过语句创建数据集
- Dim rs As ADODB.Recordset
- Set rs = New ADODB.Recordset
- rs.Open "select * from 表1", cn, adOpenKeyset, adLockOptimistic, adCmdText
-
- ' 移到首记录
- rs.MoveFirst
- Dim cPt(0 To 2) As Double
- Do While Not rs.EOF
- cPt(0) = rs.Fields("x")
- cPt(1) = rs.Fields("y")
- cPt(2) = 0
- ' 创建圆
- ThisDrawing.ModelSpace.AddCircle cPt, rs.Fields("r")
- ' 移到下一条
- rs.MoveNext
- Loop
-
- ' 关闭、释放对象
- rs.Close
- Set rs = Nothing
- cn.Close
- Set cn = Nothing
- End Sub
- Sub test2()
- '创建对数据库的连接,因为是连接Excel,故要指定扩展属性
- ' HDR表示第一行是做为字段名称还是数据行
- Dim cn As ADODB.Connection
- Set cn = New ADODB.Connection
- cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\excel.xls;Extended Properties=" & """" & "Excel 8.0;HDR=Yes;" & """"
-
- '通过表创建数据集
- Dim rs As ADODB.Recordset
- Set rs = New ADODB.Recordset
- rs.Open "表1", cn, adOpenKeyset, adLockOptimistic, adCmdTable
-
- ' 移到首记录
- rs.MoveFirst
- Dim cPt(0 To 2) As Double
- Do While Not rs.EOF
- cPt(0) = rs.Fields("x")
- cPt(1) = rs.Fields("y")
- cPt(2) = 0
- ' 创建圆
- ThisDrawing.ModelSpace.AddCircle cPt, rs.Fields("r")
- ' 移到下一条
- rs.MoveNext
- Loop
-
- ' 关闭、释放对象
- rs.Close
- Set rs = Nothing
- cn.Close
- Set cn = Nothing
- End Sub
注:关于Excel做为数据库使用时的表名设置,见下图。
这里并不是以工作表的名字做为表名,而是以单元格区域的名称。
|