2009-07-21 159 views
0

我可以運行一個更新查詢,並在一個單一的現場運行多個更新,如:MS Access 03 - 多個「ifs」在更新查詢條件的一個字段中?

「喬·多伊」更新爲334 &「巴里·戴維斯」更新爲456,等

基本上我想將名稱轉換以數字(在我的情況下,這將是員工ID號),而我有大約500名員工,因此一次只能有一個是不可能的。該表是從Excel導入,我不知道如何做這個前導入ethier!

感謝您的幫助!

+1

+1對於Ed Harper的說明,我會進一步評論說您有很好的機會可能會看到更多數據庫的優點以及爲什麼Excel作爲數據庫無法提供。 – Smandoli 2009-07-22 13:55:36

+0

如果你想獲得在Excel中分配的號碼,並且你確實有ID(這似乎你必須),那麼VLookup可能是一個典型的解決方案。但是,不要那樣,使用Access。我會讓它成爲「答案」,但你可能會這樣做! – Smandoli 2009-07-22 13:57:24

回答

3

儘管可以在Access中使用多個Iif語句,但您可能希望使用Access中的更新查詢來完成此操作。

這是很難確定無數據源更詳細的 - 我這裏假設你已經有一個表在訪問列出用戶名及其ID(其中我打電話的用戶)。如果您還沒有列出用戶名和ID的Access表,則需要獲取一個。

我還假設你已經將要從Excel更新的數據導入到名爲ExcelImport的表中。

很明顯,您需要將我的示例中使用的表名替換爲實際的表名。

,而不是在Excel中的數據替換用戶名,它可能是明智的添加新列到ExcelImport保存用戶ID。

  1. 創建一個新的查詢(「設計視圖中創建一個新的查詢」)

  2. 用戶和ExcelImport表添加到您的查詢

  3. 通過單擊創建表之間的鏈接,在Users表的「用戶名」字段之間拖動,然後通過ExcelImport上的「用戶名」字段進行釋放。這將這兩個表連接在一起。

  4. 更改查詢的類型更新(查詢>更新查詢)

  5. 在ExcelImport用戶名字段雙擊(或附加的用戶ID字段,如果你使用它)目標它用於更新。它應該出現在查詢設計器的下半部分的第一列中。

  6. 在 「更新到:」 此列中,類型[用戶]的字段[用戶名]

  7. 運行查詢。應出現一個消息框,要求您確認要更新n行。點擊OK確認。

鑑於您的數據來自Excel,您應該檢查所有用戶ID已正確設置,因爲它可能是「喬·多伊」在Excel中的數據在用戶存儲爲「約瑟夫·多伊」表 - 在這種情況下,您需要手動編輯Excel數據以獲得匹配結果。

1

我有大約500名員工這樣一個在 時間是出了一點問題的

肯定:)

考慮這個使用獨特INTEGER值的標準問題序列表:

SELECT SWITCH(
       seq = 1, 1, 
       seq = 2, 2, 
       seq = 3, 3, 
       seq = 4, 4, 
       seq = 5, 5, 
       seq = 6, 6, 
       seq = 7, 7, 
       seq = 8, 8, 
       seq = 9, 9, 
       seq = 10, 10, 
       seq = 11, 11, 
       seq = 12, 12, 
       seq = 13, 13, 
       TRUE, 999 
      ) AS seq_1 
FROM Sequence; 

超出14種情況,它會生成一個錯誤,「表達式在查詢表達式中過於複雜」。所以我認爲你不會接近500箱!

最好使它成爲查找表。