如果您使用MS Access數據庫作爲前端,這意味着您沒有從另一個 應用程序連接到它,您可以使用用戶定義的功能來解決此問題。
您可以在MS Access環境的模塊中定義這樣的功能。
我建議創建延伸 格式, 其中字母佔據前4個字符和數字的最後8,在12個字符的字符串到達 的regnr值以固定長度的一個函數,它通過標準的不平等運營商是可比的。 因此,舉例來說,如果你想給這個函數的「BC25」的值,它會返回「aabc00000025」
下面是做到了這一點功能:
Public Function MakeLong(ByVal regno As String) As String
Dim letters As String
' Extract the letters from regno
Do While regno >= "a"
letters = letters & Left(regno, 1)
regno = Mid(regno, 2)
Loop
' Left-pad letters with "a" to 4 characters, and
' left-pad number with "0" to 8 digits, and concatenate:
MakeLong = Right("aaaa" & letters, 4) & Right("0000000" & regno, 8)
End Function
然後在你的查詢,你可以寫:
WHERE MakeLong('' & regnr) BETWEEN MakeLong("ba50") AND MakeLong("bc25")
如果你希望這封信的部分佔據4個以上的字符或數字部分超過8個,你 可以相應地調整這個函數返回一個更長的字符串。
請注意,使用UDF時,您不會從桌面上的任何索引中受益,因此如果 有許多記錄,則性能可能會變得非常糟糕。
如果這成爲一個問題,我建議如果可能的話,使用不同的編碼格式爲您 regnr列。
您的前端應用程序是否是MS Access文件本身,還是您從其他應用程序連接到它? – trincot