Ms Access Dersleri : DLookUp, DCount, DSum Gibi Komutlarda Tarih Kriteri Problemi
Etki alanı komutlarında kriterler aslında çok zor değildir ve SQL Komutlarındaki SELECT ifadesini karşılamaktadır. Sıkıntı ise Microsoft Access etki alanı komutlarında kriter olarak tarih işin içine girince başlamaktadır. Eğer tarih kriterini girerken gg.aa.yyyy gibi Türkiye kullanımına göre yapacak olursanız hata alabilirsiniz. Genelde önerilen şey denetim masasından bölge ve dil ayarlarının değiştirilmesidir ancak benim gibi sisteme altı üstü bir program için müdahele etmeyi sevmeyenlerdenseniz buyrun okumaya devam edin.
Konu sonunda ek dosyada da göreceğiniz gibi bir adet tablomuz ve formumuz var. Tablomuzun adı zumrut_tablo Formumuzun adı ise zumrut_form. Tablomuzda üç alan var : "zumrut_id ( Otomatik Sayı ) , tarih ( Tarih/Saat ) , dolar ( Para Birimi )".

Tablomuza rastgele beş kayıt ekliyoruz.

Peşinden formumuzu oluşturuyoruz ve üç adet kontrol ekliyoruz : "metin kutusu ( txt_tarih ) , buton ( btn_kur_ogren ) , liste kutusu ( list_kurlar )".

Form tasarım modunda iken butonumuzun üzerine çift tıklayarak Özellikler penceresini açıyoruz.

Olay sekmesi altındaki Tıklatıldığında satırında üç nokta
olan butona tıklayıp Oluşturucu Seç penceresini açıp Kod Oluşturucusu ile yeni kod oluşturuyoruz.

Kod Oluşturucusu seçilip Tamam butonuna tıklanınca karşımıza Access VBA penceresi çıkacaktır.

Kodumuz yukarıdaki resimdeki gibidir. Alttaki kod ile yukarıdaki aynıdır.
| Microsoft Access 2010 Örnek Program | |
1 |
Private Sub btn_kur_ogren_Click() |
Kodlarımız varsayılan olarak bu şekilde gelir. zumrut_tablo isimli tablomuzdan istediğimiz kaydı alabilmek için DLookup komutunu kullanacağız. DLookup ile alınan değeri sonuc isimli bir değişkene atayacağız. Bunun için sonuc isimli değişkenimizin tanımlamasını yapalım. Hemen peşinden DLookup komutu ile txt_tarih metin kutusunun içine yazdığımız tarihin dolar değerini alalım.
| MS Access 2010 DLookup Komutu Tarih Kriteri | |
1 |
Private Sub btn_kur_ogren_Click() |


VBA penceresinde Debug işlemi sonucunda txt_tarih metin kutusundan gelen değerin normal olduğunu göreceksiniz.

Tarih değeri içinde yer alan nokta ( . ) ayıracının problem olması durumu söz konusu olduğundan ayıraç olarak bölü ( / ) işaretini kullanalım.

Kod olarakta aşağıdaki gibidir:
| Microsoft Access 2010 Replace Komutu ile Değiştirme | |
1 |
Private Sub btn_kur_ogren_Click() |
Yukarıda bahsettiğimiz gibi 05.09.2010 tarihini girdiğimizde aşağıdaki hatayı alıyoruz. Halbuki biz örnek verileri girerken 05.09.2010 diye girmiştik ve kur değeri olarakta 1,77 TL yazmıştık.

Aldığımız bu hatayı gidermek için tarihimizde yer alan nokta ( . ) karakteri yerine bölü ( / ) karakteri kullanmamızda yetmedi. Peki hata nereden kaynaklanıyor? Tarih kalıbımızı gün/ay/yıl yerine yıl/ay/gün olarak değiştirelim. Bu işlem için Replace komutu yerine Left ve Mid komutlarını kullanmalıyız. Kodumuz aşağıdaki gibi şekillenecek:
| Microsoft Access 2010 Örnek Dersleri : Left ve Mid Kullanımı | |
1 |
Private Sub btn_kur_ogren_Click() |
Sadece 5. satırda yer alan degistir değişkeninin yanında yer alan Replace komutu değişti. Mid(txt_tarih, 7, 4) ile txt_tarih metin kutusundaki yıl rakamlarını alıyoruz. Yine Mid(txt_tarih, 4, 2) ile ay kısmını alıyoruz. Bu iki değerin arasında bölü ( / ) işaretini & "/" & ile ekliyoruz. Left(txt_tarih, 2) komutu ise gün kısmını alacak.
txt_tarih metin kutusuna 04.09.2010 yazdıktan sonra Kur Öğren butonuna tıklayınca aşağıdaki sonuç ile karşılaşırız.

Artık programımız doğru bir şekilde bize tarihi veriyor. Konunun sonunda yer alan linkten Microsoft Access 2010 ile hazırlanmış örnek programı indirebilirsiniz.









Yorumlar
Çok süper kilit nokta paylaşımın için teşekkürler.
RSS beslemesi, bu iletideki yorumlar için