Applies ToMicrosoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

Bu konuda, Access veritabanında depolanan İnternet Protokolü (IP) adreslerini sıralama yordamı açıklanmaktadır.

Giriş

IP adresleriyle çalışıyorsanız, bunun metin veya sayılarla çalışmak kadar kolay olmadığını zaten biliyorsunuzdur. Bunun nedeni, IP adresinin gerçekten nokta (.) ile ayrılmış dört sayısal değerden oluşan bir koleksiyon olmasıdır ve burada her değer 0 ile 255 arasında bir sayıdır. Aşağıdaki tabloda, herhangi bir sıralama düzeni uygulanmadan önce veriler gösterilmektedir.

MachineID

Çalışan

Konum

IPAddress

1

...

...

123.4.245.23

2

...

...

104.244.253.29

3

...

...

1.198.3.93

4

...

...

32.183.93.40

5

...

...

104.30.244.2

6

...

...

104.244.4.1

Access IP adreslerini depolamak için özel bir veri türü sağlamadığından, Access'te IP adreslerini sıralamak zor bir işlemdir. IP adresi yalnızca bir sayı koleksiyonu olsa da, bir IP adreslerini sayısal alanda depolayamazsınız. Bunun nedeni sayısal alanın yalnızca tek bir ondalık noktayı (.) desteklemesi, IP adresinin ise üç nokta (.) içermesidir. Bu, adresleri bir metin alanında depolamanız gerektiği anlamına gelir.

IP adreslerini bir metin alanında depoladığınız için, adresleri anlamlı bir şekilde sıralamak için Access'teki yerleşik sıralama düğmelerini kullanamazsınız. Sıralama düğmeleri, karakterler sayı olsa bile metin alanındaki değerleri her zaman alfabetik düzende sıralar. Başka bir deyişle, adresler, adresi oluşturan sayısal değerler yerine ilk basamak, sonra ikinci basamak vb. sıralanır. Aşağıdaki tabloda, IPAddress alanında alfabetik düzende sıralanmış önceki tabloda yer alan adresler gösterilmektedir.

MachineID

IPAddress

3

1.198.3.93

2

104.244.253.29

6

104.244.4.1

5

104.30.244.2

1

123.4.245.23

4

32.183.93.40

1 ile başlayan adresler, 2 ile başlayan adreslerden önce görüntülenir ve bu şekilde devam eder. Aşağıdaki tabloda adresler doğru artan sırada gösterilmektedir.

MachineID

IPAddress

3

1.198.3.93

4

32.183.93.40

5

104.30.244.2

6

104.244.4.1

2

104.244.253.29

1

123.4.245.23

Bu adresleri sıralamada yer alan adımların anlaşılmasını kolaylaştırmak için IP adreslerini dört sayısal parçaya bölersiniz. Adresler ilk bölüme göre sıralanmalı, ardından ilk bölümdeki her değer için, sonra ikinci bölüme göre vb. sıralanmalıdır. Tablo her bölümü farklı bir sütunda gösterir ve sütunlar basit sayısal değerler içerdiğinden, sütunları aşağıdaki tabloda gösterildiği gibi soldan sağa doğru artan düzende sıralamak mümkün hale gelir.

PartI

Bölüm Tümü

PartIII

PartIV

1

198

3

93

32

183

93

40

104

30

244

2

104

244

4

1

104

244

253

29

123

4

245

23

Dört bölümü ayrı ayrı sıralamak, IP adreslerini sıralamanın arkasındaki püf noktasıdır. Aşağıdaki yordamda, IP adresi alanına ek olarak her sütunun adres değerlerinin bir kısmını depoladığı dört hesaplanmış sütun içeren bir sorgu oluşturursunuz. İlk hesaplanmış sütun adresin ilk sayısal bölümünü tutarken, ikinci hesaplanmış sütun adresin ikinci sayısal bölümünü tutar ve bu şekilde devam eder. Sorgu, kayıtları IPAddress alanına göre sıralamak yerine, kayıtları dört hesaplanmış sütuna göre sıralar.

Sorguyu oluşturma

Kayıtları IP adreslerinin artan sırasına göre görüntüleyen Sıralanmış IPAddresses adlı bir seçme sorgusu oluşturacaksınız. Geçerli veritabanında IPAddress adlı bir metin alanı içeren MachineDetails adlı bir tablo olduğunu varsayalım.

  1. Sorgu Tasarımı > Oluştur'a tıklayın. 

  2. Tablo Ekle'yi (Access'te Tabloyu Göster) seçin ve Makine Ayrıntıları'nı Tasarım Görünümü'nü üst bölümüne sürükleyin.

  3. MachineID ve IPAddress alanlarını sorgu tasarım kılavuzuna sürükleyin.

  4. Artık hesaplanmış sütunları eklemeye hazırsınız. Sağdaki ilk boş sütuna PartI: Val(Left([IPAddress],(InStr(1,[IPAddress],") ifadesini yazın. -1)))) yazın. İfade, ilk dönemden (.) önceki karakterleri döndürür. yazın.

    Şimdi ifadeyi gözden geçirin. Adresin ilk bölümünü kaç basamak oluşturduğunuzu bilmediğiniz için, ilk dönemin konumunu bulmak için InStr işlevini kullanırsınız. 1 çıkarılarak (dönemi hariç tutmak için), ilk bölümdeki basamak sayısı döndürülüyor. Ardından bu sayıyı Left işleviyle birlikte kullanarak en soldaki karakterden başlayarak IPAddress alanından bu kadar çok karakteri ayıklayabilirsiniz. Son olarak, Sol işlevi tarafından döndürülen karakterleri sayıya dönüştürmek için Val işlevini çağırırsınız. Temel alınan veri türü Metin olduğundan bu son adım gereklidir.

  5. Hızlı Erişim Araç Çubuğu'nda Kaydet'e tıklayarak sorguyu kaydedin. Bunu her ara adımdan sonra yapmak iyi bir fikirdir.

  6. İkinci adres bölümü için sütunu ekleyin. PartI'nin sağındaki sütuna PartII: Val(Mid([IPAddress],InStr(1,[IPAddress],"") yazın. +1,InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -InStr(1,[IPAddress],".") -1)) yazın. İfade, IPAddress alanındaki birinci ve ikinci dönemler arasında bulunan karakterleri döndürür.

    İfadeyi yeniden gözden geçirin. Adresin ikinci kısmını veya ikinci bölümün tam olarak nerede başladığını (ilk bölümün ne kadar uzun olduğunu bilmediğiniz için) kaç basamak olduğunu bilmediğiniz için, dönemlerin konumlarını bulmak için InStr işlevini kullanırsınız. Ardından, ilk dönemi izleyen ancak ikinci dönemden önce gelen karakterleri ayıklamak için Mid işlevini kullanırsınız. Son olarak, Mid işlevinin döndürdüğü karakterleri sayıya dönüştürmek için Val işlevini çağırırsınız. Temel alınan veri türü Metin olduğundan bu son adım gereklidir.

  7. Üçüncü adres bölümünün sütununu ekleyin. PartII'nin sağındaki sütuna PartIII: Val(Mid([IPAddress],InStr(InStr(1,[IPAddress],"") yazın. +1,[IPAddress],".") +1,InStr(InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") +1,[IPAddress],".") -InStr(InStr(1,[IPAddress],".") +1,[IPAddress],".") -1)) yazın. İfade, IPAddress alanındaki ikinci ve üçüncü dönemler arasında bulunan karakterleri döndürür.

    İfadeyi yeniden gözden geçirin. Adresin üçüncü bölümünü veya üçüncü bölümün tam olarak nerede başladığını (ilk ve ikinci bölümlerin ne kadar süreyle olduğunu bilmediğiniz için) kaç basamak oluşturabileceğinizi bilmediğiniz için, dönemlerin konumlarını bulmak için InStr işlevini kullanırsınız. Ardından, ikinci dönemi izleyen ancak üçüncü dönemden önce gelen karakterleri ayıklamak için Mid işlevini kullanırsınız. Son olarak, Mid işlevinin döndürdüğü karakterleri sayıya dönüştürmek için Val işlevini çağırırsınız. Temel alınan veri türü Metin olduğundan bu son adım gereklidir.

  8. Dördüncü ve son adres bölümü için sütunu ekleyin. PartIII'nin sağındaki sütuna PartIV: Val(Right([IPAddress],Len([IPAddress])-InStr(InStr(InStr(1,[IPAddress],".") yazın. +1,[IPAddress],".") +1,[IPAddress],".")))yazın . İfade, son dönemi izleyen karakterleri döndürür.

    İfadeyi yeniden gözden geçirin. Anahtar, üçüncü dönemin konumunu bulmak ve ardından onu izleyen tüm karakterleri ayıklamaktır. Üçüncü dönemin tam olarak nerede olduğunu bilmediğiniz için, üçüncü dönemin konumunu bulmak için InStr işlevini üç kez çağırırsınız. Ardından Len işlevini kullanarak dördüncü bölümdeki basamak sayısını hesaplayabilirsiniz. Döndürülen basamak sayısı, IPAddress alanının sağ bölümünden bu kadar çok karakteri ayıklamak için Right işleviyle birlikte kullanılır. Son olarak, Mid işlevinin döndürdüğü karakterleri sayıya dönüştürmek için Val işlevini çağırırsınız. Temel alınan veri türü Metin olduğundan bu son adım gereklidir.

  9. Dört hesaplanmış sütunun tümünün Sıralama satırını Artan olarak ayarlayın.

    Önemli    IPAddress sütununun Sıralama satırı boş bırakılmalıdır.

    Adreslere ek olarak diğer alan değerlerine göre sıralamak istiyorsanız, alanları dört hesaplanmış sütunun soluna veya sağında yerleştirin. Diğer sıralama alanlarını hesaplanmış sütunlar arasına yerleştirmeyin.

  10. Sonraki adım, dört hesaplanmış sütunu veri sayfasından gizlemektir. Ancak bunu yapmadan önce, hesaplanmış sütunlardaki ifadelerin sonucunu görmek için Veri Sayfası görünümüne geçin. Aşağıdaki tabloda, Veri Sayfası görünümünde göreceğiniz sütunlar gösterilmektedir.

    MachineID

    IPAddress

    PartI

    Bölüm Tümü

    PartIII

    PartIV

    3

    1.198.3.93

    1

    198

    3

    93

    4

    32.183.93.40

    32

    183

    93

    40

    5

    104.30.244.2

    104

    30

    244

    2

    6

    104.244.4.1

    104

    244

    4

    1

    2

    104.244.253.29

    104

    244

    253

    29

    1

    123.4.245.23

    123

    4

    245

    23

  11. Tasarım görünümüne geri dönün ve Dört hesaplanmış sütunun tümünü göster satırındaki onay kutusunu temizleyin. Bu, hesaplanmış sütunların Veri Sayfası görünümünde görüntülenmesini engeller.

  12. İsteğe bağlı olarak, kayıtları sorgudan dışlamak için ölçütleri belirtin.

  13. Kayıtları sıralı olarak görmek için Veri Sayfası görünümüne geçin. Kayıtların IP adreslerinin artan düzende doğru sıralanmış olduğunu görürsünüz.

Sıralanmış IP adresleri için daha fazla kullanım

Veri girişi sırasında IP adreslerini doğrulama

Adresleri kod yazmadan doğrulamak istiyorsanız, alanın InputMask özelliğini ###.###.##.#olarak ayarlayarak bunu sınırlı bir ölçüde yapabilirsiniz. 0;" " ve ip adresi alanının Format özelliğini &&&&&&&&&&&&.

Giriş maskesi ne yapar? Adres alanına yazmaya başladığınızda, giriş maskesi üç nokta arasında sayılar ve boşluklar dışında karakterler girmenizi engeller. Sayısal bölüm çift basamaklı bir sayıysa, üçüncü basamakları boş bırakın veya bunun yerine bir boşluk yazın. Adresin bir veya daha fazla bölümünü yazmayı atlarsa veya sayısal değer yerine yalnızca boşluklar yazarsa bu giriş maskesinin kullanıcıyı uyarmadığını unutmayın. Örneğin, "345. .3. " geçerli bir adres olarak kabul edilir.

Görüntüleme biçimi ne yapar? Yazmayı bitirip alandan çıktığınızda, görüntü biçimi adresteki boşlukları kaldırır ve yalnızca sayıları ve dönemleri görüntüler. Bu nedenle, "354.35 .2 .12" yazarsanız, adres "354.35.2.12" olarak görüntülenir. Adres seçildiğinde adresin içine tıklarsanız veya F2 tuşuna basarsanız (düzenleme moduna girmek için) boşlukların yeniden görüneceğini unutmayın.

İpucu: Bir adresi kopyalamak istiyorsanız, önceki sütuna veya denetime gidin, biçimlendirilmiş adresi seçmek için SEKME tuşuna basın ve ardından Kopyala'ya tıklayın. Bunu yaptığınızda, boşluk içeren adres dizesini kopyalamazsınız.

Form veya rapordaki kayıtları IP adreslerine göre sıralama

Kayıtların IP adreslerine göre sıralandığı bir form veya rapor oluşturmanız gerekiyorsa, yeni nesneyi adresleri depolayan tablo yerine daha önce açıklandığı gibi sıralayan bir sorguya dayandırın.

Sayfanın Başı

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.