Access لفرز السجلات بترتيب تصاعدي أو تنازلي بغض النظر عن الحالة. ومع ذلك، بكتابة بضع أسطر من رمز Visual Basic for Applications (VBA)، يمكنك فرز النص وفقاً لقيم حرف الشفرة القياسية الأمريكية لتبادل المعلومات (ASCII). يفرق الفرز وفقاً لقيم ASCII بين الأحرف الكبيرة والأحرف الصغيرة والنتائج بترتيب حساس لحالة الأحرف.
يوضح الجدول التالي كيف يختلف الترتيب التصاعدي في Access عن ترتيب الفرز الحساس لحالة الأحرف:
ترتيب فرز مسبق |
ترتيب تصاعدي |
ترتيب حساس لحالة الأحرف |
---|---|---|
c |
a |
A |
D |
A |
B |
a |
B |
C |
d |
b |
D |
B |
c |
a |
ج |
ج |
b |
A |
D |
c |
b |
d |
d |
بالرغم من أن النتائج في عمود الترتيب التصاعدي قد تبدو كأنه لا يمكن التنبؤ بها للوهلة الأولى، ولكنها ليست كذلك. في عمود الترتيب التصاعدي، يظهر "a" قبل "A" ويظهر " B" قبل "b." وهذا يحدث لأنه عند التقييم كقيم نص، فإن "A" = "a" and "B" = "b"، سواءً كانت أحرف صغيرة أو أحرف كبيرة. يضع Access في الاعتبار الترتيب الأصلي للقيم. في عمود ترتيب الفرز المسبق، "a" يسبق "A" و "B" يسبق "b".
في حال إجراء تشغيل الفرز الحساس لحلة الأحرف، يتم استبدال النص بقيم ASCII الخاصة بها. على سبيل المثال، A = 65، a = 97، B = 66، b = 98 وما إلى ذلك.
كتابة رمز VBA
-
قم بإنشاء وحدة VBA نمطية واكتب السطر التالي في مقطع Declarations، إذا لم يكن موجوداً بالفعل:
Option Explicit
-
اكتب الإجراء التالي في الوحدة النمطية في محرر Visual Basic:
Function StrToHex (S As Variant) As Variant ' ' Converts a string to a series of hexadecimal digits. ' For example, StrToHex(Chr(9) & "A~") returns 09417E. ' Dim Temp As String, I As Integer If VarType(S) <> 8 Then StrToHex = S Else Temp = "" For I = 1 To Len(S) Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00") Next I StrToHex = Temp End If End Function
الدالة السابقة المعرفة من قبل المستخدم -StrToHex- يمكن تسميتها استعلام. عندما تمرر اسم حقل الفرز لهذه الدالة، فسوف يتم فرز قيم الحقل بترتيب حساس لحالة الأحرف.
-
والآن، قم بإنشاء استعلام يمكنك من خلاله استدعاء هذه الدالة.
على علامة التبويب إنشاء، في المجموعة استعلامات، انقر فوق تصميم الاستعلام.
-
حدد إضافة جداول (إظهار الجدول في Access).
-
اسحب الحقول التي تريدها إلى الشبكة.
-
في العمود الفارغ الأول، في الصف حقل، اكتب Expr1: StrToHex([SortField]).
StrToHex عبارة عن دالة معرّفة من قبل المستخدم قمت بإنشائها مسبقاً. SortField هو اسم الحقل الذي يحتوي على القيم الحساسة لحالة الأحرف.
-
في الخلية فرز، انقر فوق تصاعدي أو تنازلي.
إذا اخترت الترتيب التصاعدي، فإن القيم التي تبدأ الأحرف الكبيرة ستظهر قبل تلك القيم التي تبدأ بأحرف صغيرة. تطبيق الفرز التنازلي لا يؤدي إلى العكس.
-
التبديل إلى طريقة عرض ورقة البيانات.
يعرض Access السجلات، مفرزة بترتيب حساس لحالة الأحرف.