在excel中用vba实现与sql数据库的数据比较

我想将excel中,一个字段中的数据与sql中某个表中的某个字段中的数据进行比较,如果excel中的数据,在sql中,有重复,那么就在EXCEL中输出来重复的数据,我的想法是,如果excel数据已录好,能不能在excel上加上一个按扭,按一下按扭进行检测,如果有重复,那么就在excel中用一个对话框输出这些重复的数据,否则返回没有重复。
Sub 检索A列中与SQL数据库中重复的受理编号()
Range("c2:c" & 65536).ClearContents
er = [a65536].End(xlUp).Row
er1 = [B65536].End(xlUp).Row

For j = 2 To er
serstr = Range("A" & j)
tr = 0
Application.StatusBar = "目前已经计算了" & Round((100 * j / er), 0) & "%" & "的数据!"
For i = 2 To er1
If Range("B" & i) = serstr Then
tr = tr + 1
End If
Next
If tr = 1 Then
Range("C" & 1) = "检索A列中与SQL数据库中重复的受理编号!"
Range("C" & j) = Range("A" & j) & "(" & tr & "次)"
End If
Next
Application.StatusBar = flase
' Columns("C:C").Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
MsgBox ("已经完成整个计算!")
End Sub

如何将上面的er1 = [B65536].End(xlUp).Row改成从SQL数据库上某个表的某列数据,这样我就可以实现EXCEL中数据与sql数据库的数据比较

  不知道你是Excel是什么版本,2003 /2010 ?

  如是2010可以插入一个叫Microsoft ADO Data control的控件.

  在该控件的属性设置数据源, 然后对adodc的记录做一个遍历对比.不过当excel的行数和SQL的中行数比较多时, 可能会比较慢. 需要比较的次数为 excel的行数 乘于 SQL 中的行数. 

  具体代源没法在这点写,好像百度允许贴代码

     

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-21
需写VBA代码来操作SQL,实现是没问题滴追问

兄弟,帮个忙吧,自己水平有限,其实连接SQL倒是会,就是如何比较有点难,谢谢了

追答

我没得SQL服务器得,找个会点的兄弟伙给你弄吧,也要不了几行代码就可以了

相似回答