2

我正在尝试在 MS Access 中的备注字段末尾修剪多余的空白。我尝试了多种方法:

1) 字段更新为 Trim([fieldname]) 的更新查询。出于某种原因,这没有任何作用。空白仍然存在。

2) 使用宏函数进行更新,其中字段内容作为字符串传递,然后使用 Trim() 函数进行处理并传回。这真的很奇怪,因为它似乎在完全随机的地方截断了字段中的文本(每条记录都不同)。有时是 366 个字符,有时是 312,有时是 280。

3) 与上述相同,但使用 RTrim()

我怎么可能把这么简单的功能搞砸了?!非常感谢任何帮助。想留着我的头发。

-山姆

4

2 回答 2

1

根据这篇文章

Text 和 Memo 数据类型都只存储在字段中输入的字符;不存储字段中未使用位置的空格字符。

正如hypoxide所暗示的那样,它们实际上可能不是空间

编辑

我怀疑该字段中的最后一个字符是回车符或换行符。如果是这种情况,那么 Trim(或 Trim 的任何变体 - RTrim\LTrim)将不起作用,因为它们只会删除空格字符。正如评论中建议的“onedaywhen”,尝试使用 ASC 函数来确定备注字段中最后一个字符的实际字符代码。您可以在查询中使用类似以下的内容来执行此操作:

ASC(Right(MyFieldName,1))

将查询结果与字符集进行比较,以确定结束备注字段的实际字符。(空格 = 32,换行 = 10,回车 = 13)。

您可能必须测试最后一个字符,如果它是换行符或回车符,请删除该字符,然后将修剪功能应用于字符串的其余部分。

于 2009-05-06T20:43:53.683 回答
0

这可能会让我过时,但 Access 对固定长度和可变长度有不同的字符类型吗?在 SQL 中,CHAR(10) 将始终为 10 个字符长,必要时进行填充,而 VARCHAR(10) 将“最大”大小为 10。截断 CHAR(10) 只会将空格放回去。

于 2009-05-06T19:42:43.957 回答