YAŞMATİK

gitarisyen

Aşk şarkıları söylemeyi bıraktığımız gün her şeyimizi yitirdik biz. İşte o yüzden durmadan aşk şarkıları söylüyorum.

 

Ne ölümler yaşatırım

İçimde ben

Hiçbiri kalmaz kendime

Bir karlı bahar açar

Gözlerimde yankısız

Kendimi öldürmekten

Yenik düşerim kendime...

Bu sitenin içeriğinden tam olarak faydalanabilmek için sisteminizde

 

JAVA ve FLASH PLAYER

 

yüklü olmalıdır.

YAŞMATİK

 

NOT: Microsoft Office Access 2003 sürümüyle yapmış olduğum bu "YAŞMATİK UYGULAMASI" 24 Nisan 2008 tarihinde tamamlanmış olup, aşağıda bu uygulamanın tanıtımını yaptığım yazı da, aynı tarihte yazılmış ve www.access-sql.com sitesinde yayınlanmıştır.

 

Aşağıdaki örneği "DateDiff" fonksiyonuna ve formu boşaltarak temizlemeye basit bir örnek olması amacıyla hazırladım.
 

Bilindiği gibi "DateDiff", tarih aralığını veren bir fonksiyondur ve iki tarih arasındaki farkı gün, ay, yıl, saat, saniye, hafta v.s. cinslerinden gösterebiliriz. Bu fonksiyonu sorgularda, denetimlerimizin "denetim kaynağında" veya VBA kodlarında kullanabiliriz. Ancak kullanım yerine göre aralarında ufak tefek farklılıklar oluyor. Örneğin formumuzda bir alanın denetim kaynağına yazacağımız zaman

=DateDiff("tarihcinsi";[tarih1];[tarih2])

olarak yazabilirken VBA kodlarında

tanımlayacağımızalan = DateDiff("tarihcinsi",[tarih1],[tarih2])

olarak yazmak gerekebiliyor.
 

Bununla ilgili ayrıntılı bilgiye http://office.microsoft.com/tr-tr/access-help/HA001228811.aspx adresinden ulaşabilirsiniz.
 

Yaptığım basit örneğin hazırlanma aşamalarını kısaca anlatırsam sanırım daha doyurucu olur:
 

Önce tasarım görünümünde boş bir form açtım ve buraya iki tane metin kutusu yerleştirdim. İlk metin kutusuna "yas", ikincisine "bugun" adını verdim. Her iki metin kutusunun giriş maskesi özelliğini de "Kısa Tarih" yaptıktan sonra "bugun" adlı metin kutusunun "Varsayılan Değer" özelliğine =Date() yazdım. Amacım "yas" metin kutusuna doğum tarihimizi girdiğimiz zaman, "bugun" adlı metin kutusundaki (varsayılan değeri bugünün tarihi olan) tarihten "yas" adındaki metin kutusuna girdiğimiz tarihi çıkartarak bize aradaki farkı vermesiydi. Sonucu da birazdan oluşturacağım ilişkisiz metin kutularında yıl, ay, hafta, gün ve saat cinsinde gösterecektim. Bu yüzden -ve uygulamanın biraz daha profesyonel bir görünüm alması için- "bugun" adlı metin kutusunun (form üzerinde görünmemesi için) Biçim sekmesindeki Görünür özelliğini "Hayır" olarak ayarladım. Daha sonra alt alta 5 tane ilişkisiz metin kutusu yerleştirip bunlara sırasıyla "yil", "ay", "hafta", "gun", "saat" adlarını verdim. "yas" adındaki metin kutusuna doğum tarihimizi girdiğimiz zaman (daha önce gizlediğimiz) "bugun" adlı metin kutusundaki tarihten bu tarihi çıkartarak oluşturduğum ilişkisiz metin kutularında benim belirleyeceğim tarih cinsinden farkları göstermesi için her metin kutusunun adı için bir DateDiff fonksiyonu tanımlayarak, bu fonksiyonların tamamını "yas" adlı metin kutusunun "Çıkıldığında" olay yordamına yazdım. (Bu alana doğum tarihini yazdıktan sonra, alandan çıkar çıkmaz, "yil, ay, hafta, gun, saat" metin kutularında sonuç hemen görüntülenecekti.)
 

Sonuçta "yas" adlı metin kutusunun "Çıkıldığında" olay yordamında şu kodlar oluştu:

 

 VBA Kodu

Private Sub yas_Exit(Cancel As Integer)
yil = DateDiff("yyyy", [yas], [bugun])
ay = DateDiff("m", [yas], [bugun])
hafta = DateDiff("ww", [yas], [bugun])
gun = DateDiff("d", [yas], [bugun])
saat = DateDiff("h", [yas], [bugun])
End Sub

 

Yukarıda görüldüğü gibi yılı "yyyy", ayı "m" v.s. olarak tanımladık. Yani kısaca iki tarih arasındaki farkı yil, ay, hafta, gun ve saat cinsinden almak için bu yola başvurduk.
 

Daha sonra form üzerinde doğum tarihimizi girip hesaplamamız yapıldıktan sonra tekrar formun temizlenerek yeni bir doğum tarihi girilebilmesi amacıyla alanların boşaltılması için bir buton oluşturdum ve butonun "Tıklatıldığında" olay yordamına aşağıdaki kodları yazdım:

 

 VBA Kodu

Private Sub Komut20_Click()
Me.yas = ""
Me.yil = ""
Me.ay = ""
Me.hafta = ""
Me.gun = ""
Me.saat = ""
End Sub

 

Bunun anlamı şuydu: "Ben -oluşturduğum ve "Komut20" adındaki- butona tıkladığım zaman bana yas, yil, ay, hafta, gun, saat alanlarını boş olarak göster."
 

Formun, alanların ve bazı denetimlerin biçimleriyle oynayıp, gözüme hoş görünen bir biçime soktuktan sonra yil, ay, hafta, gun, saat alanları üzerinde işlem yapmayacağımdan (zaten kodlarla otomatik olarak yapıldığından) ve "yas" alanına doğum tarihini girip "Enter" tuşuyla çıktıktan sonra imlecin bu alanlara gitmemesi amacıyla bu alanların Veri sekmesinden Etkin özelliğini "Hayır", Kilitli özelliğini "Evet" yaptım.
 

Son olarak Araçlar>Başlangıç yoluyla açılan pencerede bütün onay kutularının işaretini kaldırıp -uygulama açıldığında doğrudan "yasmatik" adını verdiğim formun açılması için "Form/Sayfa Görüntüle" alanına "yasmatik" formunu girdim. Böylelikle uygulamayı açtığımız zaman doğrudan formumuz ekrana gelecek ve diğer veritabanı penceresi, kısayollar, menüler gibi özellikler gözükmeyecek.

NOT: Gerçi çok bilinen bir şey ama doğrudan form görünümüyle açılan uygulamaları tasarım görünümünde açmak ve inceleyebilmek için Shift tuşunu basılı tutarak açabiliriz.

Saygılarımla...

 

 

 

 

gitarisyen

(M. Feridun GÜLSAN)

 

"ACCESS UYGULAMALARIM" Sayfasına Geri Dön

 

 

Tasarlayan: gitarisyen

 Bu site en iyi Internet Explorer ile 1024 X 768 çözünürlükte görüntülenir. © 2011