VBA:比较记录集1中可用且记录集2中不可用的两个记录集和返回记录

时间:2016-06-02 12:53:25

标签: excel vba macros adodb

我正在尝试通过excel宏运行查询,从两个表中获取数据。我想比较两个表的区别。我有两个记录集,每个记录集近100列。我需要比较记录集并返回不匹配记录。在以下条件下,

  1. 列名称是动态的,无法定义为静态
  2. 根据我们传递的查询
  3. ,列数可能会有所不同
  4. 记录计数可能更多,我们不应将完整记录集复制到任何Excel表格
  5. 通过以下代码,我正在生成记录集。任何人都可以帮助我比较这些记录集而不定义列(即,我需要比较完整记录而不是逐列)

    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim rs1 As ADODB.Recordset
    Dim sConnString As String
    Dim sql As String
    
    
    sConnString = "Provider=ASEOLEDB;Data Source=<Servername> Initial Catalog=<DB Name>;User Id=<UserID> Password=<Pwd>"
    
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set rs1 = New ADODB.Recordset
    conn.Open sConnString
    If conn.State = adStateOpen Then
    MsgBox ("Success")
    End If
    
    Set rs = conn.Execute("SELECT * FROM Table1;")
    Set rs1 = conn.Execute("SELECT * FROM Table2;")
    rs.Close
    rs1.Close
    conn.Close
    

1 个答案:

答案 0 :(得分:0)

我同意。我确定你可以用Excel做到这一点,但为什么要这么麻烦?只需运行Access&#39;找到不匹配的查询向导&#39;。请参阅以下链接,了解有关其工作原理的简短演示。

https://www.youtube.com/watch?v=lktivZpKutc