删除Access中数字后面的空格

时间:2012-12-06 17:52:04

标签: ms-access ms-access-2007 sql-update

我有一个7位数的列。导入数据后,每个数字后面都有3个空格。我在更新/选择查询中尝试了几个不同版本的Trim()而没有运气。我正在使用Access 2007。

以下是我尝试过的不同内容:

选择查询

Expr1: Trim([Number])
Expr1: RTrim([Number])

和更新查询

UPDATE Table SET [Number] = Replace([Number], " ", "");

http://office.microsoft.com/en-us/access-help/remove-spaces-from-the-beginning-and-end-of-a-text-value-HP001099033.aspx

2 个答案:

答案 0 :(得分:2)

虽然我不明白为什么这些努力失败了,但我建议你试试这个UPDATE声明。

UPDATE [Table] SET [Number] = RTrim([Number])

如果这不会删除尾随空格,那么当您尝试它时会发生什么?有错误信息吗?您是否关闭SetWarnings,这可以抑制错误消息?

同时检查这些字段值是否包含不可见的字符,并且可能会干扰修剪空格。例如,您可以检查每个字段中最后一个字符的ASCII值,如下所示:

SELECT Asc(Right([Number], 1)) AS ascii_value
FROM [Table];

空格字符是ASCII 32。

最后,如果这些建议没有引导您找到解决方案,请检查以确认该字段包含您所期望的内容。

SELECT [Number]
FROM [Table]
WHERE [Number] ALike '%   ';

答案 1 :(得分:1)

您可以使用正则表达式。这将过滤掉所有非数字 您必须在VBA中创建一个从查询中调用的函数。所以,试试这个:

Function NumOnly(S As String) As String
   Dim regex As New RegExp
   regex.Pattern = "[^0-9.-]"
   regex.IgnoreCase = True
   regex.Global = True
   NumOnly = regex.Replace(S, "")
End Function

并使用它:

UPDATE Table SET [Number] = NumOnly([Number]);