2012-07-24 80 views
3

我對Access 2010中的VBA非常新。我試圖更改表格的字段名稱中的值。下面是詳細信息:在表格的字段名稱中查找和替換數據

Table Name: WeeklySaleT 
Field Name: SitusPreDirection 

在SitusPreDirection可能的值: 「E」 「N」 「S」 「W」

想改變以下的每一次出現 「E」= 「東方」 N」 =‘北’,‘S’=‘南’和‘W’=‘西部大開發’

我怎麼會做,在VBA?

回答

3

這將是最好的,如果你不使用查詢首先複製表格,然後將表格添加到查詢設計窗口中,從工具欄中選擇更新查詢並將SitusPreDirection添加到d通過雙擊或拖動來設計網格。例如,將標準設置爲「E」「N」「S」「W」中的一個,並將「更新至」設置爲匹配值「east」。

如果切換到SQL視圖,你會看到類似這樣的:

UPDATE WeeklySaleT SET SitusPreDirection = "East" 
WHERE SitusPreDirection = "E" 

可以在VBA使用像這樣:

Dim db As Database 
Set db = CurrentDB 

sSQL = "UPDATE WeeklySaleT SET " _ 
     & "SitusPreDirection = ""East"" WHERE SitusPreDirection = ""E""" 

db.Execute sSQL, dbFailOnError 
2

的查找表的指示,你可以使用單個UPDATE查詢。

SitusPreDirection_lookup

SitusPreDirection long_name 
E     East 
N     North 
S     South 
W     West 

然後創建一個新的查詢,切換到SQL視圖,並在此UPDATE語句粘貼。您可以在SQL,設計和數據表視圖之間切換,試驗對查詢設計的更改並查看這些更改的結果。

UPDATE WeeklySaleT 
SET SitusPreDirection = DLookup("long_name", 
    "SitusPreDirection_lookup", 
    "SitusPreDirection = '" & SitusPreDirection & "'") 

如果你不希望創建一個查找表,你可以建立一個使用Switch Function查詢。然後,如果沒有單獨的表格,您基本上會在查詢中嵌入查找對。但我認爲一張桌子更容易維護。考慮如果你需要擴展包括NE,SE,SW和NW的方向會發生什麼。使用表格,您只需爲每個表格添加一行,並且相同的查詢將繼續無縫工作。但是,在查詢中嵌入查找數據時,您需要修改查詢的SQL。