返回中文字符的 MS Access 查询 - 可能 table 损坏?
MS Access query returning Chinese characters - possible table corruption?
我将新版本的数据复制并粘贴到我的 MS Access table 中,现在我的查询中出现了奇怪的字符。基本上如果我说:
SELECT a, b from table1
一切都很好。如果我改为
SELECT a, b from table1 group by a, b
结果我得到了非常奇怪的字符。起初我把L倒过来了,但现在我得到了汉字。这很奇怪,因为我数据库中的其他查询使用 table 并获得所需的输出。似乎只有当我做一个小组时我才会遇到问题。有什么建议么?我准备推出它,但现在我遇到了这些错误!
这是在备注字段上分组时通常会遇到的错误。
根据您的需要,可能有几种解决方法:
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] & "")
我刚刚在各种报告中遇到了同样的问题。确实是备忘录字段的问题。
对我有用的解决方案更直接...我不得不删除备忘录字段"Group by",问题就消失了。
我意识到这可能不是在所有情况下都是一个选项,但如果是的话,这是最简单的解决方案,因为它不需要重写 SQL 甚至数据库中的任何其他更改。
我在这里找到了这个解决方案:Allen Brown - Grouping by Memo field yields garbage
这里还有一个选项,我刚刚尝试成功了。我正在更新其他人创建的查询,作者将 Group By 子句中的每个字段都包含在 return 个不同的记录中。我删除了整个 Group By 子句并在 SELECT 之后插入了 DISTINCT。没有中国人了。这在某些情况下可能无法实现,但在这种情况下这是一个简单的修复。
此外,如果不是因为上面提供的见解,我也不会想到这一点。谢谢大家!
五个月没有问题后,今天我在一个包含 "Count" 字段的组查询中遇到了这个问题,所以 "DISTINCT" 技术不起作用。我所做的是将我的 LongText 字段包裹在有问题的字段周围。在这个 table 中,除了 "Description" 之外的所有字段都是短文本。所以字段组由 CSTR([Description]) - 现在它工作正常!顺便说一句 - 这是在 MS Office 365 更新后不久出现的!
我将新版本的数据复制并粘贴到我的 MS Access table 中,现在我的查询中出现了奇怪的字符。基本上如果我说:
SELECT a, b from table1
一切都很好。如果我改为
SELECT a, b from table1 group by a, b
结果我得到了非常奇怪的字符。起初我把L倒过来了,但现在我得到了汉字。这很奇怪,因为我数据库中的其他查询使用 table 并获得所需的输出。似乎只有当我做一个小组时我才会遇到问题。有什么建议么?我准备推出它,但现在我遇到了这些错误!
这是在备注字段上分组时通常会遇到的错误。
根据您的需要,可能有几种解决方法:
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] & "")
我刚刚在各种报告中遇到了同样的问题。确实是备忘录字段的问题。
对我有用的解决方案更直接...我不得不删除备忘录字段"Group by",问题就消失了。
我意识到这可能不是在所有情况下都是一个选项,但如果是的话,这是最简单的解决方案,因为它不需要重写 SQL 甚至数据库中的任何其他更改。
我在这里找到了这个解决方案:Allen Brown - Grouping by Memo field yields garbage
这里还有一个选项,我刚刚尝试成功了。我正在更新其他人创建的查询,作者将 Group By 子句中的每个字段都包含在 return 个不同的记录中。我删除了整个 Group By 子句并在 SELECT 之后插入了 DISTINCT。没有中国人了。这在某些情况下可能无法实现,但在这种情况下这是一个简单的修复。
此外,如果不是因为上面提供的见解,我也不会想到这一点。谢谢大家!
五个月没有问题后,今天我在一个包含 "Count" 字段的组查询中遇到了这个问题,所以 "DISTINCT" 技术不起作用。我所做的是将我的 LongText 字段包裹在有问题的字段周围。在这个 table 中,除了 "Description" 之外的所有字段都是短文本。所以字段组由 CSTR([Description]) - 现在它工作正常!顺便说一句 - 这是在 MS Office 365 更新后不久出现的!