我有一个7位数的列。导入数据后,每个数字后面都有3个空格。我在更新/选择查询中尝试了几个不同版本的Trim()而没有运气。我正在使用Access 2007。
以下是我尝试过的不同内容:
选择查询
Expr1: Trim([Number])
Expr1: RTrim([Number])
和更新查询
UPDATE Table SET [Number] = Replace([Number], " ", "");
答案 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]);