Merhaba arkadaşlar..
Bu bölümde tablomuzdaki verileri tarih alanını kullanarak iki farklı tarih arasında filtrelemeyi göreceğiz..
Bir önceki konuda kullandığımız üst-alt form örneğini burada da kullanacağız.. Üst formumuza iki ayrı metin kutusu yerleştirelim.. Üsttekinin adı txtilktarih alttakinin de txtsontarih olsun..
![[Resim: between1.jpg]](http://www.access-sql.com/resim/between/between1.jpg)
Şimdi biz istiyoruz ki alt formumuzda tablodaki(veya sorgumuzdaki) verilerimiz bu kutulara yazdığımız tarihler arasında olanları listelesin..
Alt formumuzun Özellikler / Veri / Kayıt Kaynağı kısmına gidiyoruz ve sağdaki üç noktalı düğmeye tıklıyoruz..
![[Resim: between2.jpg]](http://www.access-sql.com/resim/between/between2.jpg)
Sorgu penceresi açılacaktır.. İstediğimiz kayıt kaynağını ve görüntülenmesini istediğimiz alanları ızgaraya yerleştiriyoruz..
Şimdi kriteri uygulayacağımız alanın ölçüt satırına gidelim ve ters tıklayalım..
![[Resim: between3.jpg]](http://www.access-sql.com/resim/between/between3.jpg)
Oluştur'u tıklayınca karşımıza ifade oluşturucusu gelecektir.. Soldaki navigasyondan işleçleri siçip oradan Between ifadesine çift tıklayalım (alışınca direkt yazarsınız).
Üst ekrana yapı oturdu.. Şimdi deyim kısımlarında bizim formdaki metin kutularını tanımlamamız gerekiyor..:
![[Resim: between4.jpg]](http://www.access-sql.com/resim/between/between4.jpg)
Yine soldaki navigasyonu (ifade öğeleri) kısmını kullanarak formumuzu ortadaki bölümden de metin kutularımızı << deyim >> yazan yerlere yerleştiriyoruz..
İfade oluşturucusuyla işimiz bitti.. Tamam dediğimizde kriter bölümünde ifademiz hazır haldedir..:
![[Resim: between5.jpg]](http://www.access-sql.com/resim/between/between5.jpg)
Not: İngilizce sürümlerde [Formlar] ifadesi [Forms] olarak kullanılmalıdır..
Access konusunda tecrübeniz arttıkça ifade oluşturucusu kullanmayacağınıza emin olabilirsiniz..
Evet sorgu ile işimiz bitti.. Kapatırken çıkan uyarı mesajına evet deyiniz..
Şimdi metin kutularımıza gidelim.. İkisinin de Özellikler / Olay / Güncelleştirme Sonrasında kısmına imleci yerleştip sağda çıkan düğmeye tıklayalım.. Ekrana gelen seçeneklerden Kod Oluşturucusunu seçelim.. İmlecin oturduğu satıra bu komutu yazalım..:
Kutulara değer girdikten ve enter tuşuna bastıktan sonra alt formumuzun bu kriterlere göre verileri yeniden düzenlemesi için bu komut önemli.. Bu işlemi iki kutu içinde yapıyoruz, unutmayalım.. İsterseniz bu komutu formunuza yerleştireceğiniz bir düğmeye de uygulayabilirsiniz..
Şimdi test edebiliriz.. Kutulara tarih girerken mevcut biçimi kullanmayı unutmayın.. Hatta kutuların Özellikler / Biçim / Biçim bölümünden sorgulayacağınız alanın biçime uygun olanı seçin.. Access sürümünüz 2007 ve üzeri ise tarih seçimini popup bir denetimden yapmanız için Tarih Seçiciyi Göster seçeneğini Tarihler için olarak ayarlayın..
![[Resim: between6.jpg]](http://www.access-sql.com/resim/between/between6.jpg)
Bu sayede kutuya odaklandığınızda sağda bir takvim simgesi belirecektir.. Tıkladığınızda seçimi buradan yapabilirsiniz..
![[Resim: between7.jpg]](http://www.access-sql.com/resim/between/between7.jpg)
Şimdi soru şu..:
Cevap..: Olur..
Bunun için kriterde kullandığımız ifadeyi geliştirmemiz gerek.. İfade de şunu demeliyiz..:
Eğer kutunun biri veya her ikisi boşsa bana tüm verileri göster. Yok eğer doluysa kutudaki verilere göre krteri uygula..:
Access dilinde tercümesi..:
Burada dikkat ettiyseniz Nz Fonksiyonu kullandım.. Bu fonksiyon uygulandığı denetim veya alan null değer içerdiğinde yerine koyacağımız değeri belirlememizi sağlar.. Ben metin kutusunun boş olma durumunda kritere alanın kendisini yerleştirdim.. Böylece alandaki tüm veriler kritere yerleşti.. Etkili bir çözüm..
Atlamayalım; buradaki [DogumTarihi], kriteri uyguladığımız alanın adı olmalı.
Sanırım bu konu için yeterli bir bilgi vermiş olduk.. Anlatımda kullandığım örnek ektedir.. Aklınıza takılan kısımları gerekirse detaylandırabilirim..
Taruz..
Bu bölümde tablomuzdaki verileri tarih alanını kullanarak iki farklı tarih arasında filtrelemeyi göreceğiz..
Bir önceki konuda kullandığımız üst-alt form örneğini burada da kullanacağız.. Üst formumuza iki ayrı metin kutusu yerleştirelim.. Üsttekinin adı txtilktarih alttakinin de txtsontarih olsun..
![[Resim: between1.jpg]](http://www.access-sql.com/resim/between/between1.jpg)
Şimdi biz istiyoruz ki alt formumuzda tablodaki(veya sorgumuzdaki) verilerimiz bu kutulara yazdığımız tarihler arasında olanları listelesin..
Alt formumuzun Özellikler / Veri / Kayıt Kaynağı kısmına gidiyoruz ve sağdaki üç noktalı düğmeye tıklıyoruz..
![[Resim: between2.jpg]](http://www.access-sql.com/resim/between/between2.jpg)
Sorgu penceresi açılacaktır.. İstediğimiz kayıt kaynağını ve görüntülenmesini istediğimiz alanları ızgaraya yerleştiriyoruz..
Şimdi kriteri uygulayacağımız alanın ölçüt satırına gidelim ve ters tıklayalım..
![[Resim: between3.jpg]](http://www.access-sql.com/resim/between/between3.jpg)
Oluştur'u tıklayınca karşımıza ifade oluşturucusu gelecektir.. Soldaki navigasyondan işleçleri siçip oradan Between ifadesine çift tıklayalım (alışınca direkt yazarsınız).
Üst ekrana yapı oturdu.. Şimdi deyim kısımlarında bizim formdaki metin kutularını tanımlamamız gerekiyor..:
![[Resim: between4.jpg]](http://www.access-sql.com/resim/between/between4.jpg)
Yine soldaki navigasyonu (ifade öğeleri) kısmını kullanarak formumuzu ortadaki bölümden de metin kutularımızı << deyim >> yazan yerlere yerleştiriyoruz..
İfade oluşturucusuyla işimiz bitti.. Tamam dediğimizde kriter bölümünde ifademiz hazır haldedir..:
SQL
- BETWEEN [Formlar]![FormA]![txtilktarih] AND [Formlar]![FormA]![txtsontarih]
![[Resim: between5.jpg]](http://www.access-sql.com/resim/between/between5.jpg)
Not: İngilizce sürümlerde [Formlar] ifadesi [Forms] olarak kullanılmalıdır..
Access konusunda tecrübeniz arttıkça ifade oluşturucusu kullanmayacağınıza emin olabilirsiniz..
Evet sorgu ile işimiz bitti.. Kapatırken çıkan uyarı mesajına evet deyiniz..
Şimdi metin kutularımıza gidelim.. İkisinin de Özellikler / Olay / Güncelleştirme Sonrasında kısmına imleci yerleştip sağda çıkan düğmeye tıklayalım.. Ekrana gelen seçeneklerden Kod Oluşturucusunu seçelim.. İmlecin oturduğu satıra bu komutu yazalım..:
Visual Basic
- 'personelaltform alt formunuzun adıdır..
- Me.personelaltform.Requery
Kutulara değer girdikten ve enter tuşuna bastıktan sonra alt formumuzun bu kriterlere göre verileri yeniden düzenlemesi için bu komut önemli.. Bu işlemi iki kutu içinde yapıyoruz, unutmayalım.. İsterseniz bu komutu formunuza yerleştireceğiniz bir düğmeye de uygulayabilirsiniz..
Şimdi test edebiliriz.. Kutulara tarih girerken mevcut biçimi kullanmayı unutmayın.. Hatta kutuların Özellikler / Biçim / Biçim bölümünden sorgulayacağınız alanın biçime uygun olanı seçin.. Access sürümünüz 2007 ve üzeri ise tarih seçimini popup bir denetimden yapmanız için Tarih Seçiciyi Göster seçeneğini Tarihler için olarak ayarlayın..
![[Resim: between6.jpg]](http://www.access-sql.com/resim/between/between6.jpg)
Bu sayede kutuya odaklandığınızda sağda bir takvim simgesi belirecektir.. Tıkladığınızda seçimi buradan yapabilirsiniz..
![[Resim: between7.jpg]](http://www.access-sql.com/resim/between/between7.jpg)
Şimdi soru şu..:
Alıntı: Bu şekilde olunca form ilk açıldığında alt form (liste de olabilir) boş geliyor.. Dolu gelmesi için illaki kutulara tarih girmemiz gerekiyor.. Açılışta tüm veriler gelse ve sadece biz seçim yapınca listelense olmaz mı?
Cevap..: Olur..

Bunun için kriterde kullandığımız ifadeyi geliştirmemiz gerek.. İfade de şunu demeliyiz..:
Eğer kutunun biri veya her ikisi boşsa bana tüm verileri göster. Yok eğer doluysa kutudaki verilere göre krteri uygula..:
Access dilinde tercümesi..:
SQL
- BETWEEN
- Nz([Formlar]![FormA]![txtilktarih];[DogumTarihi])
- AND
- Nz([Formlar]![FormA]![txtsontarih];[DogumTarihi])
Burada dikkat ettiyseniz Nz Fonksiyonu kullandım.. Bu fonksiyon uygulandığı denetim veya alan null değer içerdiğinde yerine koyacağımız değeri belirlememizi sağlar.. Ben metin kutusunun boş olma durumunda kritere alanın kendisini yerleştirdim.. Böylece alandaki tüm veriler kritere yerleşti.. Etkili bir çözüm..

Atlamayalım; buradaki [DogumTarihi], kriteri uyguladığımız alanın adı olmalı.
Sanırım bu konu için yeterli bir bilgi vermiş olduk.. Anlatımda kullandığım örnek ektedir.. Aklınıza takılan kısımları gerekirse detaylandırabilirim..
Taruz..
Bulunamayan yerleri bulmak için önce kaybolmak gerekir.
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir
Kaptan Hector Barbossa
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir




