3

我对 Access 2010 中的 VBA 非常陌生。我正在尝试更改表的字段名称中的值。以下是详细信息:

Table Name: WeeklySaleT
Field Name: SitusPreDirection

SitusPreDirection 中的可能值:“E”“N”“S”“W”

希望更改以下“E”=“East”,“N”=“North”,“S”=“South”和“W”=“West”的每次出现

我将如何在 VBA 中做到这一点?

4

2 回答 2

3

如果您不熟悉 VBA,最好使用查询。首先,复制您的表格。然后将表格添加到查询设计窗口中,从工具栏中选择更新查询并通过双击或拖动将 SitusPreDirection 添加到设计网格中。例如,将 Criteria 设置为 "E" "N" "S" "W" 之一,并将 Update To 设置为匹配值 "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
于 2012-07-24T23:02:47.010 回答
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。

于 2012-07-25T02:25:05.953 回答