2014-10-16 94 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);

據工作..感謝球員的所有早前的帖子,以幫助我想出這個..