【问题标题】:SQL error modifying existing record with Insert使用插入修改现有记录的 SQL 错误
【发布时间】:2011-02-26 12:48:39
【问题描述】:

我正在使用下面的代码在 Access VBA 中调用查询

strSQL = "INSERT INTO tblLoanDetails ([ServerName]) VALUES ('Test') WHERE [ID]=3"
Call CurrentDb.Execute(strSQL)

我想更改 ServerName 字段。

我收到“3067:查询必须包含至少一个表或查询”的运行时错误。

插入语句字符串如下所示。 (将 var 放入文本框中):

INSERT INTO tblLoanDetails ([ServerName]) VALUES ('Test') WHERE [ID]=3

我尝试在末尾添加分号。我确保我的表名为 tblLoanDetails,我的列名是 ServerName 和 ID。

【问题讨论】:

    标签: sql vba insert


    【解决方案1】:

    假设您要添加 new 记录,在这种情况下您不应该有 WHERE 子句,因为没有要检查的记录。这样做:

    INSERT INTO tblLoanDetails (ServerName) VALUES ('Test') 
    

    如果您希望修改现有记录,请执行以下操作:

    UPDATE tblLoanDetails set ServerName = 'Test' where ID = 3
    

    【讨论】:

    • 您是否建议我应该更新而不是插入?
    • 使用 INSERT 添加新记录,使用 UPDATE 更改现有记录。
    • 所以如果我想从其他地方更改 ServerName 字段,我不应该插入?
    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多