我目前遇到更新查询问题,它在我们的某个Oracle表中更新了一列。基本上我们将一个CSV文件导入到Access中,将其称为'NewULN',然后使用此文件中的条件来更新我们的表格。MS Access更新Oracle数据库 - 查询问题
如果您手动输入人员代码,此脚本工作正常。它会相应地更新表格并显示正确的结果。代码如下:
UPDATE NewULN INNER JOIN FES_PEOPLE ON NewULN.MISIdentifier = FES_PEOPLE.PERSON_CODE SET FES_PEOPLE.UNIQUE_LEARN_NO = [NewULN].[ULN]
WHERE (NewULN.ULN Is Not Null) AND (FES_PEOPLE.PERSON_CODE=[Enter Person Code]);
我们现在希望一次更新所有记录,但我们一直有这样做的困难。这里就是我想下面这段代码将是确定的:
原单码:
UPDATE NewULN INNER JOIN FES_PEOPLE ON NewULN.MISIdentifier = FES_PEOPLE.PERSON_CODE SET FES_PEOPLE.UNIQUE_LEARN_NO = [NewULN].[ULN]
WHERE (NewULN.ULN Is Not Null) AND (FES_PEOPLE.PERSON_CODE=NewULN.MISIdentifier);
最最新的版本(基于建议):
UPDATE NewULN INNER JOIN FES_PEOPLE ON NewULN.MISIdentifier = FES_PEOPLE.PERSON_CODE SET FES_PEOPLE.UNIQUE_LEARN_NO = [NewULN].[ULN]
WHERE (NewULN.ULN Is Not Null);
但我们有各种各样的出现错误 - 有时Access会在您尝试运行访问查询时崩溃。
有时它会提出锁定违规(有趣的是,它会更新第一条记录,然后失败所有其他记录)。有时会出现错误“FES_PEOPLE - '无效数字'”,其他时间“只能绑定一个长整数值才能插入长列”。
ULN字段一直是Text,它以前一直工作,MISIdentifier总是Text(当我们在Windows XP上有一个运行版本)时,但现在我已将其更改为Long Int。
我没有写这个,它在我们将机器升级到Windows 7后停止工作,所以我现在不得不用很少的Access知识来重写它。你已经在做
感谢我提前
感谢您的输入,我甚至没有注意到这一点。我拿出WHERE子句中的位并运行更新,但得到了一个锁定违规错误。它再次更新的第一条记录,但未能对其他67 新代码: UPDATE NewULN INNER JOIN FES_PEOPLE ON NewULN.MISIdentifier = FES_PEOPLE.PERSON_CODE SET FES_PEOPLE.UNIQUE_LEARN_NO = [NewULN] [ULN] WHERE(NewULN。 ULN不是空的); – Zakerias