在 Access 中更新部分记录

Updating parts of a record in Access

有没有办法只更新数据库记录的一部分?我有一个 table,其中列出了一堆不同的项目及其成本,但我想从项目中删除成本。例如:

当前 table 看起来像这样

---Item-------------
  Apple- 1.35
  Orange - 1.24
  Grape - 2.00
  ETC..
---------------------

我想用相同的记录更新 table,但末尾没有带连字符的价格。这个 table 中有数百条不同的记录,所以我不能只按特定记录进行更新。我试过使用通配符,但无法获得所需的结果。有办法吗?

获取 ParseWord 函数,将其粘贴到模块中,然后在您的 UPDATE 查询中引用它,如下所示:

ParseWord([NameOfYourField], 1) 

您也可以使用 Split() function 来做同样的事情。

如果您要删除的部分始终以连字符开头,并且不会有任何连字符作为项目名称的一部分,那么此代码应该符合您的要求:

update YourTable set item = left(item, instr(item,"-")-1)

在 运行 更新之前,您可能想尝试一下 select:

select left(item, instr(item,"-")-1) as newitem from YourTable

如果您的项目名称可以包含连字符,则搜索连字符后跟 space 可能会起作用:"- "

此外,可能应该使用 where 子句来避免尝试更新没有价格部分的行。

SELECT Left(item,InStr(item,"- ")-1) AS newitem
FROM YourTable
WHERE InStr(item,"- ") > 0;

我想我会去中期:

SELECT t.ExistingField, 
  Trim(Mid([existingfield],1,InStr([existingfield],"-")-1)) AS NewData
FROM Table t

所以:

UPDATE Table 
SET Table.UpdatedField = Trim(Mid([existingfield],1,InStr([existingfield],"-")-1))
WHERE Table.ExistingField Like "*-*"