【问题标题】:MS Access query returning Chinese characters - possible table corruption?MS Access 查询返回汉字 - 可能的表损坏?
【发布时间】:2015-02-28 00:20:48
【问题描述】:

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

SELECT a, b from table1

一切都很好。如果我改为这样做

SELECT a, b from table1 group by a, b

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

【问题讨论】:

  • 您如何连接到您的 Access 数据库并从中读取数据? (您在哪个程序中运行查询?)。您使用的是什么排序规则?
  • 我正在 VBA 的子例程中构建查询。然后我设置一个等于查询的列表框行源。但是,即使我只是在 Access 的查询生成器中编写查询,我也会看到同样的情况。在我更新数据之前我没有得到这个。
  • 请发布屏幕截图,其中包括您看到的结果以及表格视图中的数据。

标签: ms-access


【解决方案1】:

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

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

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] & "")

【讨论】:

  • 这很荒谬,但很高兴知道!非常感谢。这解决了问题。
  • 我使用了第一个使用 Left 函数的示例。
  • Select a, Left(b, 255) As b From table1 Group By a, Left(b, 255)
  • 加上一个让我在“备忘录字段”参考的正确轨道上。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2020-03-20
        • 1970-01-01
        • 2023-04-07
        • 2021-10-21
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多