Docmd.TransferText для обновления данных - PullRequest
0 голосов
/ 07 июня 2010

Я использую Docmd.TransferText для импорта данных из текстового файла в мою таблицу доступа.

Мне бы хотелось сделать следующее:

  1. , если запись уже существует, затем обновите его
  2. , если запись не существует, затем добавьте ее

как мне это сделать?

в настоящее время у меня есть эта строка:

DoCmd.TransferText acImportDelim, yesyes, "table3", "C:\requisition_data_dump.txt", True

1 Ответ

1 голос
/ 07 июня 2010

Вы не можете сделать это с помощью импорта. Вы можете использовать трансфертекст, чтобы связать данные в виде таблицы, а затем запустить обновление и запрос на добавление.

sSQL="UPDATE table3 INNER JOIN MyLinkedTable " _
    & "ON table3.ID=MyLinkedTable.ID " _
    & "SET table3.SomeField=MyLinkedTable.SomeField "
CurrentDB.Execute sSQL, dbFailOnError

sSQL="INSERT INTO table3 (ID,SomeField ) " _
    ="SELECT ID, SomeField FROM MyLinkedTable " _
    & "LEFT JOIN table3 " _
    & "ON table3.ID=MyLinkedTable.ID " _
    & "WHERE table3.ID Is Null "
CurrentDB.Execute sSQL, dbFailOnError
...