VBA 提高篇36 ADO接入外部数据库 Api打开系统百宝箱

这篇文章展示了如何使用Ado对象连接并操作外部数据库,包括创建连接对象、执行SQL语句、处理结果集。同时,文中还提及了在Excel中通过API函数调用Windows的应用程序,如使用WinExec函数打开记事本。

在这里插入图片描述

Ado接入外部数据库

1.创建连接对象 Adodb.Connection
2.连接数据库(数据版本/数据路径)
3. 准备Sql语句 执行
4. 准备结果集对象Adodb.Recordset
5. 结果集-> 发送SQL语句 ->至目标数据库

rst.Open sql,con

  1. 执行操作

rst.moveNext 表格指针的移动
rst.EOF 是否移动到该表(数据表)末尾

  1. 关闭结果集和连接对象
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的其他应用
在这里插入图片描述

(强大的数据库函数,几乎无所不能)

  1. WinExec(命令可执行文件名,显示方式)

  2. 在这里插入图片描述
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pigerr杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值