2014-10-16 76 views
0

我已阅读了几个Q & A在此处使用Switch和Iff语句在Access中填写基于条件的值。 我对Access相对来说比较新,所以有一点帮助会很感激。MS Access:有条件地填充列值

我有2个表格,OwnerPet

Owner有以下字段:

OwnerID , OwnerName , PetType , PetCommonName , OwnsAGarden 

Pet有以下字段:

Species , CommonName , NeedsAGarden 

表宠动物的科学名称映射到通用,俗称的。 表所有者具有表中现有的OwnerID,OwnerName,PetCommonName和OwnsAGarden的值。需要根据Table Pet的某些条件更新列PetType。

我想是这样的:

如果Pet.CommonName = '狗' AND Pet.NeedsAGarden = '是',则Owner.PetType = '传出的狗', 否则,如果Pet.CommonName ='狗'和Pet.NeedsAGarden ='否',然后Owner.PetType ='室内狗', 否则如果Pet.CommonName = Owner.PetCommonName,则Owner.PetType =来自Pet.Species的相应的值。

我试过使用switch语句。前两个条件得到评估,表格得到完美更新。然而,第三个条件似乎并没有达到预期的结果。

+0

请添加代码,你已经使用开关statem ent – Ram 2014-10-16 15:48:02

+0

@Srikanth:我的代码是 - update所有者集Owner.PetType Switch(Pet.CommonName ='Dog'AND Pet.NeedsAGarden ='Yes','Outgoing dog',Pet.CommonName ='Dog' AND Pet.NeedsAGarden ='No','Indoor dog',Pet.CommonName = Owner.PetCommonName,Pet.Species);我知道一件事是绝对错误的。但由于我没有太多的知识,我无法弄清楚。 – Rashu 2014-10-17 08:26:00

回答

0

经过大量替代品的修修补补,我已成功地解决使用IIF语句我的问题..

我改变了代码

Update Pet INNER JOIN Owner 
 
ON Pet.CommonName = Owner.PetCommonName 
 
SET Owner.PetType = IIF(Pet.PetCommonName = 'Dog', IIF(Pet.NeedsAGarden = 'Yes', 'Outgoing dog', 'Indoor Dog'), Pet.Species);

据工作..感谢球员的所有早前的帖子,以帮助我想出这个..