Ado接入外部数据库
1.创建连接对象 Adodb.Connection
2.连接数据库(数据版本/数据路径)
3. 准备Sql语句 执行
4. 准备结果集对象Adodb.Recordset
5. 结果集-> 发送SQL语句 ->至目标数据库
rst.Open sql,con
- 执行操作
rst.moveNext 表格指针的移动
rst.EOF 是否移动到该表(数据表)末尾
- 关闭结果集和连接对象
Sub importData()
Dim con As Object, rst As Object, sql As String, i As Integer
'1.创建一个连接对象
Set con = CreateObject("Adodb.Connection")
'2.使用con将连接对象与目标数据库连接起来 -->连接
con.Open "Provider = Miscrosoft.ACE.OLEDB.12.0;Data Source=d:\vbademo\demodb.accdb"
'将准备执行的SQL命令保存在的一个字符传变量sql中
sql = "select 课程号,课程名称,责任教师, from course"
'创建一个结果集对象
Set rst = CreateObject("adodb.recordset")
'3.使用该结果及对象,沿con线路将sql语句发送给目标数据库,并接收数据库返回的查询结果
rst.Open sql, con
' 4. 接受结果,并处理结果集
'4.1将结果集中全部内容直接复制到B2开始的单元格中
'Range("b2").CopyFromRecordset rst
'4.2 扫描结果集中每一行数据,将其字段内容稍加修改后填入第i行单元格中
i = 2
Do While Not rst.EOF
Cells(i, 2) = rst("课程号")
Cells(i, 3) = "《" & rst("课程号") & "》"
Cells(i, 4) = "Mr." & rst("责任教师")
rst.MoveNext
i = i + 1
Loop
'5.非常重要,程序结束前必须关闭结果集和连接对象sql指令
rst.Close
con.Close
End Sub
Windows Api函数 (Application Programming Interface)
在Excel里边通过API函数调用Windows的其他应用
(强大的数据库函数,几乎无所不能)
- WinExec(命令可执行文件名,显示方式)
- …
Option Explicit
Declare Function WinExec Lib "kernel32" _
(ByVal lpCmdLine As String, ByVal ncmdshow As Long) As Long
Sub runDemo()
WinExec "C:\windows\system32\notepad.exe", 9
End Sub