【VBA研究】如何将Excel工作表的内容更新到数据库

iamlaosong文

利用Excel维护数据库,自然就需要完成工作表内容和数据库表内容的互动。将数据库表的内容读到工作表中,这儿就不说了,本文主要是要说一下如何将工作表中修改后的内容更新到数据库表中。

比较快速的方法是采用记录集更新方法,这种方法比较快,也很方便。经测试,对access数据库是没有问题的,微软的SQL Server没测过,不过是一家产品,估计没问题,代码如下:

Sub SaveData_rst()
    'On Error GoTo ErrMsg:
    
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sqls, mytable As String
    Dim i, j, n As Integer
     
    '建立连接,当前文件的路径可以用ThisWorkbook.Path
    Set cnn = New ADODB.Connection
    cnn.Open "Provider =Microsoft.ACE.OLEDB.12.0; Data Source = " & ThisWorkbook.Path & "\支付宝.accdb"
    mytable = "账号明细"
    n = Range("a1").End(xlDown).Row  '当前工作表有效行数
    '使用SQL语句操作数据库
    For i = 2 To n
        sqls = "select * from " & mytable & " where khzh='" & Cells(i, 1).Value & "'"
        Set rst = New ADODB.Recordset
        '用记录集对象执行SQL语句
        rst.Open sqls, cnn, adOpenKeyset, adLockOptimistic
        If rst.RecordCount = 0 Then rst.AddNew   '找不到,增加一条空记录
        For j = 1 To rst.Fields.Count
            rst.Fields(j - 1) = Cells(i, j).Value
        Next j
        rst.Update
    Next i
     
    rst.Close         ' 关闭记录集
    Set rst = Nothing ' 释放对象
    cnn.Close         ' 关闭连
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值