MS Access 排序(比较字符串数据)

Posted

技术标签:

【中文标题】MS Access 排序(比较字符串数据)【英文标题】:MS Access sort (comparing string data) 【发布时间】:2015-04-02 20:10:57 【问题描述】:

我有一个使用 MS Access 作为数据库的 .NET 应用程序。 该应用程序运行良好,并且仍然可以在我的 PC 上运行。但是在客户端 PC 上重新安装 Windows 后,应用程序开始以一种非常奇怪的方式工作。

数据库中的数据是西里尔文(马其顿文)。 问题是数据库没有正确排序字符串。

例如,如果我运行以下查询:

SELECT * FROM exampletbl ORDER BY title

预期的结果应该是:

id  title
1   Александар
2   Бранко
3   Влатко
4   Гоце
5   Гвозден
6   Дарко
7   Ѓоре
8   Ѓурѓа

...

目前它的访问方式是这样排序的:

id  title
1   Александар
2   Бранко
3   Влатко
4   Гоце
5   Ѓоре
6   Гвозден
7   Ѓурѓа
8   Дарко

...

我的猜测是区域设置或 OLE DB 驱动程序没有在客户端 PC 上正确配置,并且访问将数据排序为拉丁字母。

附言客户端windows版本是Windows 7 x86

【问题讨论】:

可以设置访问表的排序规则吗? 我知道如何在 mysql 上设置排序规则,但我在 MS Access 方面没有丰富的经验,也不知道如何设置排序规则。 【参考方案1】:

要更改排序顺序(在新数据库上),请转到文件 > 选项 > 常规 > 创建数据库> 新数据库排序顺序。

这会给你

要使该更改在当前数据库中生效,请执行压缩和修复。这将在后台创建一个新数据库(感谢 Gord Thompson 的建议)

【讨论】:

“我还不确定如何为现有数据库更改它。” - 执行压缩和修复数据库将实施更改,因为它会创建一个“新数据库” ” 在这个过程中。 @GordThompson 哦,太好了!这是有道理的 非常感谢,你救了我的命,问题解决了 :)

以上是关于MS Access 排序(比较字符串数据)的主要内容,如果未能解决你的问题,请参考以下文章

JET OLEDB 参数如何将字符串与 Access DB 中的文本字段进行比较

MS Access 按字符串开头对访问报告进行排序

MS Access 2003 - 排序列表框的字符串值不是按字母顺序

按计数排序未正确排序 - SQL (MS Access 2007)

MS Access 数据库设计 - 用户输入比较

在 MS Access 中比较日期 >= '1/1/2016'