Excel中VBA编程学习笔记(十六)--Access数据库更新操作

【例1】使用Connection的Execute的方法

数据库格式:

 

Sub test()

    Dim conString$, sqlString$

    Dim cnn, rst

   

    Set cnn = CreateObject("ADODB.Connection")

    Set rst = CreateObject("ADODB.Recordset")

    Dim i%, sex$, Address$, Name$, birthDay$

   

    conString = "provider=Microsoft.ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.accdb;"

    cnn.Open conString

    sqlString = "update students set sSex=''"

    cnn.Execute sqlString

    MsgBox "更新成功"

    cnn.Close

End Sub

 

  1. 使用RecordSet

数据库字段如下:

Sub exercise()

    Dim cnn, rst

    Set cnn = CreateObject("ADODB.connection")

    Set rst = CreateObject("ADODB.recordset")

    Dim sqlStr$, conStr$

    conStr$ = "provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.mdb"

    sqlStr = "select * from students where 总分 <160"

    cnn.Open conStr$

    rst.Open sqlStr, cnn, adOpenDynamic, adLockOptimistic

    Do Until rst.EOF

        rst("总分") = 160

        rst.MoveNext

    Loop

    cnn.Close

End Sub

【例3】从excel获取批量写入ACCESS数据库

数据库字段如下:

Execel数据如下:

Sub exercise()

    Dim cnn ', rst

    Set cnn = CreateObject("ADODB.connection")

    'Set rst = CreateObject("ADODB.recordset")

    Dim rst As New ADODB.Recordset

    Dim sqlStr$, conStr$, Count%

   

    conStr$ = "provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.accdb"

    sqlStr = "insert into students(sName,sSex,sAddress,birthDay)  select 姓名, 性别, 地址, 出生日期 from [excel 8.0;database=" & ThisWorkbook.FullName & "].[sheet2$]"

    cnn.Open conStr$

   

    cnn.Execute sqlStr, Count

   

    MsgBox "更新了" & Count & "条结果"

    cnn.Close

End Sub

注:上面方式对于未打开的工作薄也可以获取数据.红色加粗部分标注的Excel 8.0随着不同的office版本需要做相应的改变。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据之道

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

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

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

打赏作者

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

抵扣说明:

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

余额充值