|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
老师,谈不上。
Sub up()
Dim cnn, Sql As String, mypath$, m%
Set cnn = CreateObject("adodb.connection")
mypath = ThisWorkbook.Path & "\制令单总表.accdb"
i = sheet1.[a9999].End(3).Row
cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & mypath
Sql = "select COUNT(a.制令单号) from 制令单 A INNER JOIN [Excel 12.0;Database=" & ActiveWorkbook.FullName & "].[制令单$a1:k" & i & "] B" _
& " ON (A.制令单号=B.制令单号" _
& " and A.排版人 is null AND A.完工日期 is null and A.备注说明 is null)"
m = cnn.Execute(Sql)(0)
Sql = "update 制令单 A,[Excel 12.0;imex=0;Database=" & ActiveWorkbook.FullName & "].[制令单$a1:k" & i & "] B" _
& " SET A.排版人=B.排版人,A.完工日期=B.完工日期,A.备注说明=B.备注说明 WHERE A.制令单号=B.制令单号" _
& " and (A.排版人 is null AND A.完工日期 is null and A.备注说明 is null)"
cnn.Execute Sql
cnn.Close
Set cnn = Nothing
MsgBox "更新 " & m & " 条记录"
End Sub
这个必须是三个字段都是null 才会更新,如果你的要求是每一个字段如果有内容,则不更新的话,除了循环,我没有想到好的办法。
|
|