我有一个带有RowSource的组合框。显示时,它显示来自查询的项目列表。该查询有两列。当用户选择某些内容时,第一列存储在表中,但显示第二列(正常工作)。
当您访问表单并查看某些现有数据时,它会显示查询(RowSource)中的显示值。大部分时间都很好用。
挑战在于我的一个组合框处理区分大小写的密钥。错误的东西正在显示出来。
以下是一些人为的数据:
id value
[a1] [Apples]
[A1] [Oranges]
下属表是这样的:
MyTable
id: int
...other fields...
fruit_key: string
当fruit_key
列包含“a1”时,我想看到苹果。当它包含“A1”时,我想看橘子。
发生的事情是我总是看到苹果,因为它正在进行不区分大小写的匹配。
如何将其更改为区分大小写?
答案 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
之外你还必须实际存储十六进制字符串,因为你无法编辑计算列。
我不确定二进制字段方法是否或如何适用于您的情况。
总而言之,你可能会更好