Я пытаюсь запустить запрос с помощью макроса excel, получая данные из двух таблиц. И я бы хотел сравнить таблицу для разницы. У меня есть два набора записей, каждый из которых содержит около 100 столбцов. Мне нужно сравнить набор записей и вернуть записи несоответствия. При указанном ниже условиях,VBA: Сравните два набора записей и записи возврата, которые доступны в наборе записей 1 и недоступны в наборе записей 2
- имена столбцов являются динамическими и не могут быть определены статическими
- Число столбцов может отличаться в зависимости от запроса мы передавали
- Отсчет Записи может быть больше, и мы не должны копировать полный набор записей на любой из листов 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
Похоже, что у вас есть рабочий сервер БД, который способен обрабатывать запросы SQL. Итак, почему вы пытаетесь сделать в Excel (используя VBA) то, что должен делать сервер БД (быстрее и эффективнее)? – Ralph
Хороший вопрос ..! Вышеприведенный пример. То, что я на самом деле пытался сделать, это вытащить данные из двух таблиц: один из Sql-сервера и другой из Sybase и пытается сравнить их. Более или менее это похоже на проверку данных. Я не мог добавлять или изменять серверы в своих рабочих системах, и более простой способ, о котором я могу думать, - использовать VBA. Надеюсь, ты сможешь получить мне решение. – Ram
Установите соединение [соединение между сервером SQL Server и Sybase Server] (https://support.microsoft.com/en-us/kb/280102), а затем выполните сравнение с помощью SQL. – Ralph