MS Access查询返回中文字符 - 可能表损坏?

时间:2015-02-28 00:20:48

标签: ms-access

我将新版本的数据复制并粘贴到我的MS Access表中,现在我的查询中出现了奇怪的字符。基本上如果我说:

SELECT a, b from table1
一切都很好。如果我改为

SELECT a, b from table1 group by a, b

结果我得到了非常奇怪的字符。起初我是颠倒了L,但现在我得到了汉字。这很奇怪,因为我的数据库中的其他查询使用该表并获得所需的输出。似乎只有在我做了一个小组的时候我才有问题。有什么建议?我已准备好推出它,但现在我收到了这些错误!

4 个答案:

答案 0 :(得分:10)

如果在备忘录字段上进行分组,则通常会遇到此错误。

根据您的需要,可能会有几种解决方法:

Select 
    a, Left(b, 255) As b
From 
    table1 
Group By 
    a, Left(b, 255)

Select 
    a, Mid(b, 1) As b
From 
    table1 
Group By 
    a, Mid(b, 1)

Select 
    a, First(b) As firstb
From 
    table1 
Group By 
    a

Select 
    a, DLookUp("b","table1","Id = " & [table1]![Id] & "") AS b
From 
    table1 
Group By 
    a, DLookUp("b","table1","Id = " & [table1]![Id] & "")

答案 1 :(得分:1)

我在各种报告中都遇到过同样的问题。问题的确是备忘录字段。

对我有用的解决方案更加直接...我不得不删除“备注”字段的“分组依据” ,问题消失了。

我意识到这可能不是在每种情况下的一种选择,但是如果是这样,这是最简单的解决方案,因为它不需要重写SQL甚至不需要数据库中的任何其他更改。

我在这里找到了此解决方案:Allen Brown - Grouping by Memo field yields garbage

答案 2 :(得分:1)

五个月没问题之后,今天我在一个包含“ Count”字段的组查询中遇到了这个问题,因此“ DISTINCT”技术不起作用。我所做的就是将我的LongText字段包裹在有问题的字段周围。在此表中,除“描述”外,所有字段均为短文本。因此,按CSTR([Description])将字段分组-现在工作正常!顺便说一句-这是在MS Office 365更新后不久出现的!

答案 3 :(得分:0)

这里是另一个选择,我刚刚尝试成功。我正在更新其他人创建的查询,并且作者在Group By子句中包含了每个字段,以返回不同的记录。我删除了整个Group By子句,并在SELECT之后立即插入DISTINCT。没有更多的中文。在某些情况下这可能是不可能的,但在这种情况下,这是一个简单的解决方法。

如果没有上面提供的见解,我也不会想到这一点。谢谢大家!