Docmd.TransferText更新数据

时间:2010-06-07 18:36:34

标签: sql ms-access access-vba

我正在使用Docmd.TransferText将文本文件中的数据导入我的访问表。

我希望它能够执行以下操作:

  1. 如果记录已存在,则更新
  2. 如果记录不存在则添加
  3. 我该如何做到这一点?

    目前我有这条线:

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

1 个答案:

答案 0 :(得分:1)

您无法通过导入执行此操作。您可以使用transfertext将数据链接为表,然后运行更新和追加查询。

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