问题描述
在我的访问文件中的表中,每个单词后都有带有尾随空格的字符串。数据类型为短文本。
即StackOverFlow
访问设计视图中的某些功能是否可以消除尾随空格? 还是我必须到 sql 查询级别来修剪尾随空格?
如果是 sql,我可以在查询中添加什么以将 StackOverFlow
修剪为 StackOverFlow
。
解决方法
使用RTrim
:
Select RTrim([YourField]) As CleanText From YourTable
,
尝试使用 InStr
查找字符串末尾/第一个空格的位置,然后将所有内容放在左侧。
SELECT Left("StackOverFlow ",InStr("StackOverFlow "," ") - 1);
,
作为一般规则,从表单或编辑中输入的数据会自动修剪尾随空白。但是,如果您导入数据,则是的,可能会出现尾随空白。
因此,您需要清除现有的空白,但在此之后,不应出现尾随空白。
您可以在标准代码模块中使用此例程来清理给定的表。
Sub CleanTable(strTableName As String)
Dim rst As DAO.Recordset
Dim MyField As DAO.Field
Set rst = CurrentDb.OpenRecordset(strTableName)
Debug.Print "clean table = " & strTableName
Do While rst.EOF = False
rst.Edit
For Each MyField In rst.Fields
If MyField.Type = dbMemo Or MyField.Type = dbText Then
rst(MyField.Name) = Trim(rst(MyField.Name))
End If
Next MyField
rst.Update
rst.MoveNext
Loop
rst.Close
Beep
Debug.Print "done clean table"
End Sub
所以从代码,甚至调试(立即)窗口,你可以去:
CleanTable"tblHotels"
但是,一旦完成,正如所指出的,尾随空白不应再次出现。如果它们是有关从 Excel、csv 或 dbase 或某些其他数据源导入的其他详细信息,则必须在起作用,并且在此处涉及您未共享的详细信息。
当然,在运行以上类型的代码之前进行备份。