Access Uygulamasında birçok tablo oluşturulur. Raporlamak için ise Seçme sorgu türü veriler gösterilir. Bu bölümde seçme sorgularının kullanımı ile ilgili örnekler göreceksiniz. Sorgu örnekleri için TABLOMUSTERI tablosuna bir dizi veri girdim. Aşağıdaki uygulama dosyasından sizde bu tabloyu kopyalaya bilirsiniz.
Örnek – Yaşı 40’den Büyük olan Müşterilerin Listesi
Seçme Sorgusunu bir örnek ile anlatmaya çalışalım. Örneğin Müşterinin yaşı 40’dan büyük Müşteriler listesinin sorgusunu oluşturalım. Öncelikle Sorguda görüntülenecek alanları belirtelim.
İsim vermemizi isteyecektir.
Düzenli isim mantığından yola çıkarak SORGU_40_YASINDAN_BUYUK_MUSTERILER şeklinde kaydediyoruz.
Sol kısımda Sorgular Başlığı altında sorgumuzu kaydetmiş olduk. Sorguyu bu hali çalıştırdığımda bütün kayıtları gösterecektir. Çünkü hala herhangi bir kriter belirlemedik.
Sorgunun başlığına Sağa tıklayıp Tasarım görünümüne tekrar geçiyoruz.
Amacımız sorguda yaşı 40’dan büyük Müşterileri listelemekti. Excel gibi düşünürsek filtreleme işlemi yapacağız. Yaş alanına gelip Ölçüt alanı ile kesiştiği alana geliyoruz. >40 yazıyoruz. Yani (40 yaş hariç) 40 yaşından büyük olan Müşterilerin listesini istemiş olduk.
Sorgu kriterini yazdıktan sonra Tasarım Sekmesindeki Çalıştır’a basıyoruz.
Böylece 40 yaşından büyük olan öğrencilerin listesini belirlemiş olduk.
Örneğin bu sorguda Adres alanı görünmesin istiyoruz. Bunun için Tasarım Görünümünü açıyoruz. Adres alanında Göster hizasındaki seçili işareti kaldırıyoruz.
Sorguyu tekrar çalıştırdığımızda Adres alanı artık bu çıkan listede görünmeyecektir.
Kaydedip çıktığınızda ise Göster alanı seçili olmayanlar bir sonraki Tasarım Sekmesinde açtığınızda kalktığını göreceksiniz.
Örnek – Yaşı 40’den Büyük ve Sadık Müşteri olan Müşterileri getiren Sorgu
TABLO_MUSTERIKARTI tablosunu incelediğimizde Sadık Müşteri mi? alanında bazı Müşteriler için Sadık Müşteri olarak seçilmiş, bazı müşteri ise seçili durumdadır.
Bu sorgumuzda 40 yaşından büyük ve Sadık Müşteri olan kişileri listeleyeceğiz. Önceki sorgumuza ilaveten Sadık Müşteri alanını da ekliyoruz. Ölçüt Alanına = Doğru yazıyoruz. Bu alana isterseniz =True veya =1’de diyebilirsiniz. Hepsi aynı şeyi ifade etmektedir. Zaten siz ne yazarsanız yazın Access =Doğru olarak otomatik çevirecektir. Aşağıdaki birbirleri için aynı ifade olan Yanlış Doğru değerlerini belirttim. Hangisi kolayınıza giderse onu yazabilirsiniz.
=DOĞRU | =YANLIŞ |
=TRUE | =FALSE |
=1 | =0 |
Sorguyu Çalıştır dediğimizde önce SORGU_40_YASINDAN_BUYUK_SADIK_MUSTERILER olarak kaydedip istenilen kriterdeki müşterileri görebiliriz.
40 yaşından Büyük ve Sadık Müşterilerin listelendiğini göreceğiz.
AND ve OR Operatörler Örnekleri
Örnek – OR Operatörü – 40 Yaş ve Sadık Müşteri Listesi
Önceki yaptığımız iki sorgu da dikkat ederseniz Ölçüt hizasında.
Hem 40 yaşından büyük öğrenciler görüntülensin hem de Sadık Müşteri olan Müşterilerin listesi şeklindeydi. Bu durumda iki sorguya da uyan işlemleri listeliyor. Yani 40 yaşından büyük olsa bile seçmeli ders almıyorsa listelenmeyecekti.
Şimdiki Örneğimizi ise 40 yaşından büyük müşterileri listelensin, bunun yanında Sadık Müşteri olan müşterilerinde listelensin istiyoruz. Bu listede
- 40 yaşından büyük tüm Müşteriler gelecek (başka kritere bakmaksızın)
- Sadık Müşteri olan Tüm Müşteriler de gelecek (Yaşa bakmaksızın)
Her iki kriterinde tamamının gelme imkânı olmaz. Excel’de filtreleme işleminde hatırlayın.
Böyle bir listeleme için sorgulardan bir tanesini VEYA (ingilizce OR) alanına taşıyacağız.
Gördüğünüz gibi artık aynı hizada değil. Bu şekliyle OR kavramını yapmış olduk. Yukardaki kriteri tekrar gözden geçirdiğimizde
- 40 yaşından büyük tüm Müşteriler gelecek
veya
- Sadık Müşteri olan Tüm Müşteriler de gelecek
Verileri incelediğimizde
21 Yaşındaki Mustafa TANER’de gelmiş oldu. Sadık Müşteri olmayan Doğa KAYNAK’da gelmiş oldu.
OR Türkçe ifade ile VEYA ifadesi mantığı belirttiğimiz gibi sorgulanan farklı kriterler kendi başlarına filtreler birbirinden bağımsızdır.
Örnek – OR Operatörü – Müşterinin Adı Ahmet veya Mehmet İse Listele
İki türlü de yazabilirdik.
1. Yöntem
Ölçüt alanına =”Ahmet” Or “Mehmet” şeklinde yazabiliriz
2. Yöntem
Ad alanını iki defa sorgu kısmına ekleriz. Göster alanını birini seçmemiz yeterli
Ölçüt kısmına =”Ahmet” listelenmeyecek Ad alanının Veya kısmına da =”Mehmet” yazarız.
Sonuç her iki yöntemle de aşağıdaki şekilde görülecektir.
Dikkat ettiyseniz Ölçüt ile Veya alanına aynı hiza da yazmamakla da OR mantığını kullanmış olduk.
Daha fazla operatöre de Ölçüt Alanına gelip Sağ tuş yaptıktan sonra Oluştur dediğimizde
Aşağıdaki şekilde İfade Oluşturucusu ekranı gelecektir. Daha önce bu ekranı kullanmıştık.
Bu örnekleri çoğaltabiliriz. Seçme işlemleri diğer bir ifade ile filtreleme işlemlerini ve AND OR işlemlerini belirtiğim örneklerler gibi yöntemlerle yapabiliyoruz.
Örnek – And Operatörü – Yaşı 30 ile 40 arasında olan Müşteriler
Bu örneği Ölçüt alanı >=30 And <=40 şeklinde yazarak iki sayı arasını listeleyebiliriz.
Yaş kısmı görüldüğü üzere belirlediğimiz kriterleri üzerinde listeleme yapıldı. 30 ve 40 arasındaki kayıtlar gelmiş oldu.
Sorguda Olumsuz Koşul Kullanma (NOT Operatörü)
Belirlediğiniz koşul ile istemediğiniz alanı NOT operatörü ile sorguladığınızda o kayıt sorguda çıkmayacaktır.
Örneğimizde Müşteri Kartı tablosunda adı Ahmet olanları listelememek (Listeden Kaldırmak) için Ad alanına Not “Ahmet” yazıyoruz.
Sorguda görüldüğü gibi ilk kayıt adı Ahmet olduğu için sorguda görüntülenmemiş oldu.
Çeşitli Sorgu Örnekleri
Ölçüt Satırına aşağıdaki örnekleri yazarak siz de deneyebilirsiniz.
LEN([SOYADI])>VAL(5) | |
Soyadı alanı 5 karakterden uzun olan kayıtları listeler | |
LEN([SOYADI])<VAL(5) | |
Soyadı alanı 5 karakterden kısa olan kayıtları listeler | |
LEN([SOYADI])=VAL(5) | |
Soyadı 5 Karakter olan kayıtları listeler | |
LEN([SOYADI])>=VAL(5) | |
Soyadı en az 8 karakter olanları listeler (8 karakter de dahil) | |
LEN([SOYADI])<=VAL(8) | |
Soyadı en fazla 8 karakter olanlar (8 karakter dahil) | |
ISNULL | |
Boş bırakılanlar. Sorgulanan alanda boş hiçbir değer girilmemişse listeleyecektir. | |
IS NOT NULL | |
Boş olmayan alanları listeler. Eğer veri girilen alanları listelemek isterseniz bu özelliği kullanın | |
RIGHT([SOYADI];6)=”SEYMEN” | |
Soyadı alanında son 6 harfi seymen olan kayıtları listeler | |
LEFT([SOYADI]);4)=”KARA” | |
Soyadı alanında ilk 4 harfi KARA olarak biten kayıtlar |
Sorgularda Alanların Sıralanması
Yukarıda anlattığım örneklerde belirlenen kriterlere göre istediğimiz verileri getirebiliriz. Bir taraftan veri listelerken aynı zamanda istediğimiz kolona göre sıralama işlemi de yapabiliriz.
Sorguyu çalıştırdığımızda aşağıdaki şekilde tarih alanına göre sıralı şekilde gelecektir.
Verdiğim örneklerle umarım bu kısmın mantığını anlatabilmiştir.
Eğitime Access Tablo Yapma Sorgusu #11 makaleden devam edin.