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 ' 关闭连