如何在一个表上交换字段的值

时间:2014-06-04 16:51:47

标签: sql ms-access

我在Access 2010中有一个数据库,用于我们校园里的所有密钥。该表是CampusBuilding,它有一个名为:KeyNumber的字段。因此,在此字段中,我们列出了大约600个密钥,每个密钥具有不同的编号(没有具有相同编号的密钥)。有时我需要将密钥的数量更改为另一个数字。所以这是一个例子: 在名为KeyNumber:

的字段中,从1到8的数字列表

8

6

7

3

2

1

5

4

这是我想做的。 在名为:CampusBuildingKeys的表单中,我转到具有数字8的字段的记录,并且我想将数字8替换为7.当我为此字段键入7时,数字8将转到数字7为7的字段。这意味着编号为7的记录现在是8号。 我希望你能理解我想说的话。 我还没有很熟悉Access,所以我很感激任何建议! 谢谢

2 个答案:

答案 0 :(得分:2)

这样的东西可能工作......

UPDATE CampusBuildingKeys
SET    KeyNumber = Iif(KeyNumber = 7, 8, 7)
WHERE  KeyNumber IN (7, 8)

答案 1 :(得分:0)

我建议将操作包装在存储过程中。我不熟悉确切的Access语法,但是这个线程(http://accessexperts.com/blog/2011/07/29/sql-server-stored-procedure-guide-for-microsoft-access-part-1/)应该是一个很好的起点。

创建一个存储过程,该过程包含2个参数(key1,key2)并执行以下(kinda-hack)语句的等效语句:

UPDATE table SET key=-100 WHERE key=key2
UPDATE table SET key=key2 WHERE key=key1
UPDATE table SET key=key1 WHERE key=-100 

我使用-100值临时指向具有键-2的行。