AccessTr.neT

Tam Versiyon: Weekday İle Haftalık Ajanda Hazırlamak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Herkese selam,

Ekte gönderdiğim örnekte "Frm_Ajanda_Haftalik" adında bir formum var ve bu formda kullanıcının kaydettiği Hatırlatmalar kayıtlı. Bu formu hazırlamaktaki maksadım kullanıcının içinde bulunduğu hafta içerisinde (Hatırlatma tarihi) alanına göre yapması gereken işlerin gün gün görüntülenmesidir. Formun düşündüğüm kullanım maksadına uygun tasarımı henüz tamamlanmadı. Ancak formda da görüleceği gibi formun üzerine herbiri bir günü temsil eden 7 adet ListBox (kaynağı "Tbl_Ajanda" tablosu) var. Kullanıcı "Frm_Ajanda" formunda hazırladığı hatırlatmalar bu Listboxlarda "hatırlatma tarihi" alanına uygun olarak filtrelenecek ve böylece kullanıcı hangi gün ne işlem yapacağını görecek. Yani başta dediğim gibi mimarisini bilgim dahilinde sürdürüyorum.
Bu kadar laftan sonra asıl soruma gelmek istiyorum; hem örnekte hem de eklediğim ekran görüntüsü resminde de görüleceği üzere Weekday fonksiyonunu internetten gördüğüm örneklerden ListBox'lara uyarlamaya çalıştım ama maalesef tarihlerin yıl bölümleri 1899 veya 1900 yılllarına gitti. ve maalesef birkaç defa denememe rağmen düzeltemedim. Bu konuda yardıma ihtiyacım var. (resim üzerinde tarihleri kırmızı kutu ile işaretledim.

Şimdiden teşekkür ederim.
M_Kemal selamlar


senin yaptigin Weekday(#17.02.2020#,1) bu sekilde idi. Asagidaki seklini kopyalip denermisin.

=Date() & "-" & Weekday(Date(),1)
Merhaba, @orhantanriverdinin cevabına ek olarak, 

Weekday(#17.02.2020#,1)

kodu ile 17/02/2020 tarihinin, haftanın kaçıncı günü olduğunu görürsünüz. Siz metin kutusunun biçim özelliğini tarih olarak belirlediğiniz için dd.mm.yyyy formatında tarih görüyorsunuz. Aslında orada 2, yani haftanın 2. günü yazıyor. 2 yazmasının sebebi de virgülden sonra 1 yazmanız. weekday fonksiyonunda, 1 yazarsanız ilk günü Pazar olarak hesaplar. Haftanın ilk gününün Pazartesi olması için 

Weekday(#17.02.2020#,2)

kodu kullanılır.

Siz bu metin kutusunda 19/02/2020 tarihinin bulunduğu haftanın ilk gününü görmek için,

Metin46 metin kutusunun denetim kaynağına

=#19.2.2020#-(DatePart("w";#19.2.2020#;2)-1)

Sonraki gün için, metin55'in denetim kaynağına 

=#19.2.2020#-(DatePart("w";#19.2.2020#;2)-2)


yazmalısınız.

Bu durumda da, liste22, Metin55'e bakacağı için satır kaynağı

SELECT Tbl_Ajanda.KytNu, Tbl_Ajanda.islemTrh, Tbl_Ajanda.KonuBaslik, Tbl_Ajanda.HatirlatmaTrh, Tbl_Ajanda.Bitti FROM Tbl_Ajanda WHERE (((Tbl_Ajanda.HatirlatmaTrh)=Format([Forms]![Frm_Ajanda_Haftalik]![Metin55],"dd/mm/yyyy")) AND ((Tbl_Ajanda.Bitti)=No));


olmalı. Uygulamanızı tasarlarken Yapılmaması Gereken Ölümcül HatalarURL'ye Git konusunu inceleyin. Metin kutusunun ismi Metin55 yerine mtn_tarih2 vs. olmalı. Form ismi "Frm_Ajanda_Biten_Hatırlatmalar" yerine "Frm_Ajanda_Biten_Hatirlatmalar" olmalı.
dilerim işinize yarar
1 - pazartesi ve salı günleri için sorguları düzenledim diğerleri de benzer şeklide halledilebilir
2 - sorguların üstünde yer alan isimlendirmek için kullandığınız metin kutularının isimlerini değiştirdim
3 - form yükleme olayına aşağıdaki kodu ekledim
ilkGun = CLng(Date - Weekday(Date, 2)) '
For x = 1 To 7
Me.Controls("HfGn" & x) = Format(ilkGun + x, "dd.mm.yyyy dddd")
Next x
ilkGun = CLng(Date - Weekday(Date, 2))+1 kodu haftanın ilk günün tarihini verir
Sayın Orhan Tanrıverdi, Sayın OzanAkkaya ve Sayın Berduş,

Destekleriniz ve tavsiyeleriniz için gerçekten çok teşekkür ederim. Konu ile ilgili tabloyu, formu ve isim değişikliklerini tavsiyeleriniz doğrultusunda tekrar düzenliyorum müteakiben her birinizin de verdiği kodları tek tek deneyeceğim. Ben yazdığım tarih formatını ve kodlarını İnternetten ve Microsoft'un kendi sitesinde verdiği örneklerden bilgim çerçevesinde uyarlamaya çalıştım. Ama tabiiki sizin gibi ustalardan bizzat destek görmek ayrı bir güzellik. Çok teşekkür ederim. sağ olun var olun...Sağlıcakla kalın.