2015-11-05 73 views
1

我有一個組合框與行來源。顯示時,它顯示來自查詢的項目列表。該查詢有兩列。當用戶選擇一些東西時,第一列存儲在表中,但第二列顯示(工作正常)。如何將MS-Access中的組合框添加區分大小寫?

當您查看錶單並查看一些現有數據時,它將顯示來自查詢(RowSource)的顯示值,就像它應該一樣。大部分時間都很好用。

挑戰在於我的一個組合框處理區分大小寫的鍵。錯誤的東西正在顯示。

下面是一些人爲的數據:

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

下屬表是這樣的:

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

fruit_key列包含 「A1」,我想看到蘋果。當它包含「A1」時,我想看橘子。

發生了什麼事情是我總是看到蘋果,因爲它正在做一個不區分大小寫的匹配。

如何將此更改爲區分大小寫?

回答

0

除了使用kludgy解決方法,您不能。從How To Perform a Case-Sensitive JOIN Through Microsoft Jet

Microsoft Jet數據庫引擎本質上不區分大小寫。

而且沒有辦法改變這種情況。

在查詢中的WHERE條件和JOIN中,可以使用二進制字符串compare:StrComp(Field1, Field2, 0) = 0

但是在這裏,對於綁定的組合框,最好的選擇是將fruit_key字符串轉換爲一個十六進制字符串(請參閱文章中的十六進制擴展)。

在組合框的行源中,您可以使用計算列,但在要使用組合框編輯的表中,除了fruit_key之外,您還必須實際存儲十六進制字符串,因爲您無法編輯一個計算列。

我不確定是否或如何在您的情況下使用二進制字段

所有的一切,你可能會被

  • 「做不同」,讓你不需要區分大小寫的數據更好,或者不使用Jet作爲後端
  • ,但一個服務器數據庫,您可以在其中設置區分大小寫的排序規則。