|
本帖最后由 mpc-long 于 2009-5-12 17:46 编辑
两个表,表1和表2,两个表的格式和记录的笔数完全一样,只是同一条记录的某些字段的字可能不一样。
我的想法是用两个Recordset,然后将每一条记录的每个字段比较,不同的话就在输出的EXCEL文档中对应单元格中弄成黄色背景,相同的就原样输出
部分代码如下:
Dim Conn As New ADODB.Connection
Dim Rec As New ADODB.Recordset
Dim Rec2 As New ADODB.Recordset
Dim strSQL As String
Dim strSQL2 As String
strSQL = "SELECT * FROM 表1 "
strSQL2 = "SELECT * FROM 表2 "
Rec.Open strSQL, Conn, adOpenStatic, adLockOptimistic
Rec2.Open strSQL2, Conn, adOpenStatic, adLockOptimistic
Do While Not Rec.EOF
For n = 0 To Rec.Fields.count - 1
.Cells(i + j, n + 1) = Rec.Fields(n)
If (Rec.Fields(n) <> (Rec2.Fields(n)) Then ' 问题就是这句,去掉这句就没问题 ,但是去掉这句又不能实现判断
xlApp.ActiveSheet.Cells(i + j, n + 1).Interior.ColorIndex = 6
end if
next
i=i+1
Rec.movenext
Rec2.movenext
Loop
.......
.......
错误是:Item cannot be found in the collection corresponding to the requested name or ordinal
不知道是不是因为我的某些字段是空的原因呢?
如果是的话,怎么解决呢?
急啊,先在此多谢了~~~~ |
|