Выберите данные из книги Excel, которых нет в таблице доступа - PullRequest
1 голос
/ 08 апреля 2019

У меня есть таблица доступа.Поля соответствуют полям книги Excel.Таблица Access содержит некоторые записи, которых нет на листе Excel, и наоборот.Тем не менее, есть некоторые совпадения.Пример:

Таблица доступа 1

ID        Name      Attribute
1         Canada    A
2         USA       B
3         Mexico    A

Excel

Name      Attribute
USA       B
Mexico    A
France    B

Данные, присутствующие в Excel, но не Access, должны быть добавлены в таблицу Access.Ожидаемый результат:

ID        Name      Attribute
1         Canada    A
2         USA       B
3         Mexico    A
4         France    B

Прямо сейчас я открываю набор записей на листе Excel.Я хотел бы выполнить запрос, подобный

INSERT INTO Table1 (Name, Attribute)
SELECT (Name, Attribute) FROM Recordset
WHERE (Name, Attribute) NOT IN 
      (SELECT Name, Attribute FROM Table1)   

Возможно ли это сделать в Access?Как мне обратиться к моей записи?Вот код, приводящий к вопросу:

Sub openWorksheet()
    Dim cn As New ADODB.Connection
    Dim rs1 As New ADODB.Recordset
    Dim strQuery As String
    Dim lastRowIndex As Long
    Dim i As Integer
    Dim wbPath As String
    Dim db As DAO.Database
    Dim rs2 As DAO.Recordset



    wbPath = "C:\Users\david.grandmaison\Desktop\RISE\Rise_Template.xlsx"
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & wbPath & ";" & _
    "Extended Properties=Excel 12.0;"

    strQuery = "SELECT Dist_Ret_Door_ID FROM [Sheet1$]"
    rs1.Open strQuery, cn     

    Set db = CurrentDb
    strQuery = "This is what I'm trying to write"
    db.Execute strQuery

Я знаю, что мог бы зацикливаться на наборе записей Excel и проверять каждую запись одну за другой и добавлять ее, если она не существует, ноЯ ищу одну вставку, поскольку зацикливание займет слишком много времени.Однако, если я ошибаюсь или нет способа избежать этого, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...