在 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 "*-*"
有没有办法只更新数据库记录的一部分?我有一个 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 "*-*"