我无法在MS Access中使用UPDATE,但我可以向数据库添加行

时间:2011-05-16 08:17:37

标签: ms-access

我得到的错误是由于保护违规原因未添加该行。错误是葡萄牙语,所以不完全是那里写的。有帮助吗?感谢

4 个答案:

答案 0 :(得分:3)

在UPDATE语句中更新多个字段时,请在字段表达式之间使用逗号(而不是AND)。

UPDATE table1 SET quantity=8, last_Sent_Date='16-05-2011' WHERE ID = '18'; 

该示例假定数量的字段类型为数字,last_Sent_Date为文本,ID为文本。如果这些假设是错误的,请使用不同的分隔符。

答案 1 :(得分:0)

last_Sent_Date='16-05-2011'
WHERE ID = '18'

您确定以文本格式存储日期吗?我希望它是一个日期字段。 您确定要以文本格式存储您的ID吗?我希望它是一个数字字段。

对于AS400日期函数:http://www.broculos.net/tutorials/as_400_chapter_4_sql/20071026/en(向下滚动)

我希望有类似的东西:

UPDATE table1 SET quantity=8 AND last_Sent_Date=DATE('16-05-2011') WHERE ID = 18;

我不确定日期转换是否完全正确。我在AS / 400中没有很多经验

答案 2 :(得分:0)

听起来你遇到类型不匹配的问题。错误(或错误文本)的屏幕截图仍然有用;不过这可能是你想要的:

UPDATE table1 SET quantity=8 , last_Sent_Date=#16-05-2011# WHERE ID = '18'; 

甚至更好,用YYYY-MM-DD格式(而不是DD-MM-YYYY - 这可能会在一个月中给出错误的结果< = 12)

UPDATE table1 SET quantity=8 , last_Sent_Date=#2011-05-16# WHERE ID = '18'; 

这种方式不可能让MS Access误解日期。 #标记表明它是一个日期常数。

答案 3 :(得分:0)

尝试将时间戳字段添加到源数据库表。无法告诉您链接表上的更新问题已经为我修复了多少次。还要检查源表是否设置了足够的密钥以唯一标识记录。