在Access中更新记录的部分内容

时间:2015-01-16 14:30:08

标签: sql database ms-access-2010

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

当前表格如下

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

我想用相同的记录更新表格,但最后没有透明的价格。此表中有数百个不同的记录,因此我无法通过特定记录进行更新。我尝试过使用通配符,但我无法得到我正在寻找的结果。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

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

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

在运行更新之前,您可能希望将其作为选择:

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

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

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

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

答案 1 :(得分:0)

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

ParseWord([NameOfYourField], 1) 

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

答案 2 :(得分:0)

我想我会选择Mid:

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 "*-*"