VBA更新现有记录

时间:2018-08-20 18:26:19

标签: vba ms-access access-vba

我正在寻找设置VBA,如果当前不存在新记录(相同的ID#),则可以将新记录添加到表中,然后更新现有记录的所有列(相同的ID#)。我能够设置insert语句,但是出现更新错误。

下面的代码指出我有一个

  

查询表达式'[update]中的语法错误(缺少运算符)。[date]来自[update]。

您可能提供的任何帮助都会很有帮助。

Function Update()
    Dim dbs As Database
    Set dbs = CurrentDb

    dbs.Execute "Update historic_archive Set historic_archive.DATE = [update].[DATE] FROM [update], historic_archive WHERE [update].[id] = historic_archive.id;"

End Function

2 个答案:

答案 0 :(得分:2)

您可能想将“位置”更改为“开”

Function Update()

  Dim dbs As Database

  Set dbs = CurrentDb

  dbs.Execute "UPDATE historic_archive " _
            & "SET historic_archive.DATE = [update].[DATE] " _
            & "FROM [update] " _
            & "JOIN historic_archive ON [update].[id] = historic_archive.id;"

End Function

答案 1 :(得分:2)

两件事。 1.请阅读有关SQL更新命令的更多信息。 2.切勿使用类似于日期,更新之类的名称。了解有关命名约定的更多信息。

'Below update command will update historic date with update table.date where both id's are same.


Function Update() 
    Dim dbs As Database 
    Set dbs = CurrentDb 

    dbs.Execute "UPDATE historic_archive inner join [UPDATE] ON [update].[id] = historic_archive.id " & _
    "SET historic_archive.[DATE] = [update].[DATE];"
End Function