如何在MS-Access中为组合框添加区分大小写?

时间:2015-11-05 17:20:12

标签: ms-access ms-access-2010

我有一个带有RowSource的组合框。显示时,它显示来自查询的项目列表。该查询有两列。当用户选择某些内容时,第一列存储在表中,但显示第二列(正常工作)。

当您访问表单并查看某些现有数据时,它会显示查询(RowSource)中的显示值。大部分时间都很好用。

挑战在于我的一个组合框处理区分大小写的密钥。错误的东西正在显示出来。

以下是一些人为的数据:

id   value
[a1] [Apples]
[A1] [Oranges]

下属表是这样的:

MyTable
id: int
...other fields...
fruit_key: string

fruit_key列包含“a1”时,我想看到苹果。当它包含“A1”时,我想看橘子。

发生的事情是我总是看到苹果,因为它正在进行不区分大小写的匹配。

如何将其更改为区分大小写?

1 个答案:

答案 0 :(得分:0)

你不能,除了kludgy变通办法。来自How To Perform a Case-Sensitive JOIN Through Microsoft Jet

  

Microsoft Jet数据库引擎本质上不区分大小写。

没有办法改变它。

在查询中的WHERE条件和JOIN中,您可以使用二进制字符串比较:StrComp(Field1, Field2, 0) = 0

但是在这里,使用绑定的组合框,您最好的选择是将fruit_key字符串转换为例如十六进制字符串(请参阅文章中的十六进制扩展)。

在组合框的rowsource中你可以使用一个计算列,但是在你要用组合框编辑的表中,除了fruit_key之外你还必须实际存储十六进制字符串,因为你无法编辑计算列。

我不确定二进制字段方法是否或如何适用于您的情况。

总而言之,

你可能会更好
  • “以不同方式执行”,以便您不需要区分大小写的数据,或
  • 不使用Jet作为后端,而是使用服务器数据库,您可以在其中设置区分大小写的排序规则。