|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
ouyli 发表于 2013-11-2 14:48 
麻烦老师了 - Sub 更新插入数据()
- Dim cnn As Object, rs As Object, SQL$
- Dim arr, i&, s$, t, d As Object
- Set d = CreateObject("scripting.dictionary")
- arr = [a1].CurrentRegion
- For i = 2 To UBound(arr)
- s = arr(i, 1) & Chr(9) & arr(i, 2)
- If Not d.Exists(s) Then
- d(s) = i
- ElseIf arr(i, 8) > arr(d(s), 8) Then
- d(s) = i
- End If
- Next
- t = d.items
- Set cnn = CreateObject("adodb.connection")
- cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.accdb"
- For i = 0 To d.Count - 1
- r = t(i)
- SQL = "select * from Sheet1 where LastName='" & arr(r, 1) & "' and FirstName='" & arr(r, 2) & "'"
- Set rs = CreateObject("adodb.Recordset")
- rs.Open SQL, cnn, 1, 3
- If rs.RecordCount = 0 Then
- rs.AddNew
- For j = 1 To 8
- rs.Fields(j - 1).Value = arr(r, j)
- Next
- rs.Update
- Else
- For j = 3 To 8
- rs.Fields(j - 1).Value = arr(r, j)
- Next
- rs.Update
- End If
- Next
- MsgBox "数据保存完毕!", vbInformation + vbOKOnly
- rs.Close
- cnn.Close
- Set rs = Nothing
- Set cnn = Nothing
- End Sub
复制代码 |
|