Microsoft Office Access 2007 kayıtları büyük veya küçük harf oluşuna bakmadan artan veya azalan sıralama düzeninde sıralar. Ancak, birkaç satırlık Visual Basic for Applications (VBA) kodu yazarak, metni ASCII karakter değerlerine göre sıralayabilirsiniz. ASCII değerlerine dayanarak yapılan sıralama büyük harfleri küçük harflerden ayırt eder ve büyük/küçük harfe duyarlı bir sıralama düzeni elde edilir.
Aşağıdaki tablo, Access'teki artan sıralama düzeninin büyük/küçük harfe duyarlı sıralama düzeninden nasıl farklı olduğunu göstermektedir:
| Sıralanmamış düzen |
Artan sıralama |
Büyük/küçük harfe duyarlı sıralama |
| c |
a |
A |
| D |
A |
B |
| a |
B |
C |
| d |
b |
D |
| B |
c |
a |
| C |
C |
b |
| A |
D |
c |
| b |
d |
d |
Artan sıralama sütunundaki sonuçlar ilk bakışta biraz tahmin edilemez gibi görünse de, öyle değildir. Artan sıralama sütununda, "a" karakteri "A" karakterinden ve " B" karakteri de "b" karakterinden önce gelmektedir. Böyle olmasının nedeni, ister küçük ister büyük harf olsunlar, metin değerleri olarak hesaplandıklarında "A" = "a" ve "B" = "b" olmasıdır. Access, değerlerin başlangıçtaki sırasını göz önüne alır. Sıralanmamış düzen sütununda, "a" karakteri "A" karakterinden ve "B" karakteri de "b" karakterinden önce gelir.
Büyük/küçük harfe duyarlı işlem gerçekleştirildiğinde, metin değerlerinin yerini ASCII değerleri alır. Örneğin, A = 65, a = 97, B = 66, b = 98 vb.
VBA kodunu yazma
- Bir VBA modülü oluşturun ve yoksa, Declarations bölümüne aşağıdaki satırı yazın:
Option Explicit
- Visual Basic Düzenleyicisi'ndeki bir modüle aşağıdaki yordamı yazın:
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
Yukarıdaki kullanıcı tanımlı StrToHex işlevi bir sorgudan çağrılabilir. Sıralama alanının adını bu işleve geçirdiğinizde, alan değerlerini büyük/küçük harfe duyarlı sıralama düzeninde sıralar.
- Şimdi, içinden bu işlevi çağıracağınız bir sorgu oluşturun.
Oluştur sekmesinin Diğer grubunda Sorgu Tasarımı'nı tıklatın.
- Tabloyu Göster iletişim kutusunda, sıralamak istediğiniz tabloyu tıklatın ve Ekle düğmesini tıklatın.
- İstediğiniz alanları kılavuza sürükleyin.
- İlk boş sütunda, Alan satırına, İfade1: StrToHex([AlanSıralama]) yazın.
StrToHex, daha önce oluşturduğunuz kullanıcı tanımlı işlevdir. AlanSıralama, büyük küçük harfe duyarlı değerleri içeren alanın adıdır.
- Sırala hücresinde, Artan veya Azalan seçeneğini tıklatın.
Artan sıralamayı seçerseniz, büyük harflerle başlayan değer küçük harflerle başlayanlardan önce görüntülenir. Azalan bir sıralama düzeni uygulandığında, bunun tam tersi olur.
- Veri Sayfası görünümüne geçin.
Access, büyük/küçük harfe duyarlı düzende sıralanmış kayıtları görüntüler.
Sayfanın Başı