Ms access 删除Access中数字后面的空格
我有一个7位数的列。导入数据时,每个数字后面导入了3个空格。我在更新/选择查询中尝试了几个不同版本的Trim,但没有成功。我正在使用Access 2007 以下是我尝试过的不同方法: 选择查询Ms access 删除Access中数字后面的空格,ms-access,ms-access-2007,sql-update,Ms Access,Ms Access 2007,Sql Update,我有一个7位数的列。导入数据时,每个数字后面导入了3个空格。我在更新/选择查询中尝试了几个不同版本的Trim,但没有成功。我正在使用Access 2007 以下是我尝试过的不同方法: 选择查询 Expr1: Trim([Number]) Expr1: RTrim([Number]) 和更新查询 UPDATE Table SET [Number] = Replace([Number], " ", ""); 虽然我不明白为什么这些努力失败了,但我建议你试试这个更新语句 UPDATE [Table
Expr1: Trim([Number])
Expr1: RTrim([Number])
和更新查询
UPDATE Table SET [Number] = Replace([Number], " ", "");
虽然我不明白为什么这些努力失败了,但我建议你试试这个更新语句
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 '% ';
可以使用正则表达式。这将过滤掉所有非数字。 您必须在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]);
有趣的是,ASCII select查询的结果是160。这似乎是一个问题,关于如何删除它有什么想法吗谢谢更新[表格]设置[编号]=替换[编号],Chr160,是的,我的假设不正确。现在编辑。但是,它仍然无法验证数字是否正确格式化,以1.2.3-4开头