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

标签 excel vba macros adodb

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

  • 列名是动态的,不能静态定义
  • 列数可能会根据我们传递的查询而有所不同
  • 记录数可能更多,我们不应将完整的记录集复制到任何 Excel 表

  • 通过下面的代码,我正在生成记录集。谁能在不定义列的情况下帮助我比较这些记录集(即,我需要比较完整记录而不是逐列比较)
    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
    

    最佳答案

    我同意。我相信你可以在 Excel 中做到这一点,但为什么要麻烦呢?只需运行 Access '查找不匹配的查询向导'。有关其工作原理的简短演示,请参见下面的链接。

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

    关于excel - VBA:比较两个记录集并返回记录集 1 中可用且记录集 2 中不可用的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592466/

    相关文章:

    sql-server - SQL Server,插入 Excel "Invalid column name"时出现 "linked server"错误

    vba - Excel/VBA : Transpose and "Flush" Table

    c++ - 如何将多参数模板传递给宏?

    macros - 如何在不使用 `eval` 的情况下编写此宏?

    Excel:计算非常大的数的模而不会出现溢出错误

    excel - 条件格式增加颜色

    vba - 在运行任何程序之前和之后自动执行代码

    VBA Microsoft.XMLHTTP setRequestHeader 不发送 cookie

    C# Excel VBA 使模块名称不依赖于语言

    c++ - 包含头文件 unordered_map 时出错