您可以在查询中使用Trim() 函数删除前导和尾随空格。
UPDATE YourTable
SET text_field = Trim(text_field);
如果您将在 Access 会话中执行此操作,则可以使用 Replace() 将两个空格的序列替换为一个空格。
UPDATE YourTable
SET text_field = Replace(text_field, ' ', ' ');
但是,您可能需要多次运行 Replace() 查询才能将所有连续的空格字符减少到一个。
您还可以使用用户定义的函数进行基于正则表达式的替换。不过,我不知道这是否值得。而且用户定义的函数也只能在 Access 应用程序会话中使用。
我忽略了“表格中的每个单元格”方面。这使得这更具挑战性,我认为您无法使用标准宏或查询来解决它。但是,您可以使用 VBA 代码检查 TableDef,并遍历其字段...然后在数据类型为文本或备忘录的任何字段上调用您的 Trim 和/或 Replace 操作。
这是一个粗略的代码大纲,用于识别给定表格的哪些字段是文本类型。
Public Sub FindTextFields(ByVal WhichTable As String)
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set db = CurrentDb
Set tdf = db.TableDefs(WhichTable)
For Each fld In tdf.Fields
If fld.Type = dbText Or fld.Type = dbMemo Then
Debug.Print "Do something with " & fld.Name
End If
Next
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing
End Sub