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

the*_*lar 7 ms-access

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

SELECT a, b from table1
Run Code Online (Sandbox Code Playgroud)

一切都好.如果我改为做

SELECT a, b from table1 group by a, b
Run Code Online (Sandbox Code Playgroud)

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

Gus*_*tav 11

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

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

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] & "")
Run Code Online (Sandbox Code Playgroud)

  • 这很荒谬,但很高兴知道!非常感谢.这解决了这个问题. (2认同)

roh*_*l77 5

我刚刚在各种报告中遇到了同样的问题。问题确实出在备注字段上。

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

我意识到这可能不是所有情况下的一个选项,但如果是的话,这是最简单的解决方案,因为它不需要重写 SQL,甚至不需要对数据库进行任何其他更改。

我在这里找到了这个解决方案:Allen Brown - 按备注字段分组会产生垃圾


小智 5

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

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