IIf ile tarih karşılaştırması...

1 2 3
21/03/2009, 16:28

bidehr

Selamlar, bir metin kutusunun varsayılan değerine 0 ve 5 rakamlarından uygun olanını yazdırmak istiyorum. Bir tablodan alınan "u_tar" tarih değerinin benim manuel olarak girdiğim "31.01.2009" değerinden büyük olması durumunda "0" değerini alması değilse, IIf(Month(Date())>=1;5;0) kodunun çalışmasını istiyorum. Aşağıdaki kodu yazdım ama hatanın nereden kaynaklandığını çözemiyorum


sorun aidat bilgileri/borç sütunlarındaki b1,b2,b3.... yazan sütunlarda






Yardımlarınız için şimdiden teşekkürler...
21/03/2009, 16:40

okileturc

Formunuzu gönderin ltf
Tşk
21/03/2009, 16:49

tdsharun

1) Aynı konuyu hem Access sorular bölümüne hem Excel sorular bölümüne açmışsınız. Lütfen Forum Kurallarını okuyun...

2) Örnek olmadan net cevap almanız zor.

3) Kodunuzu şu şekilde değiştirip dener misiniz?

Kod:
=IIf([Tablo1]![u_tar]>#01.31.2009#;0;IIf(Month(Date())>=1;5;0))
21/03/2009, 17:38

bidehr

Dosyayı ekledim kullanıcı adı ve şifre admin dir..
21/03/2009, 18:59

tdsharun

Dosyanızda yaptığım değişiklikler:

1) Tablo1 ve Tablo2'den oluşan yeni bir sorgu oluşturdum. Adını Harun koydum. Form2'nin denetim kaynağını Harun sorgusu yaptım.

2) Formunuza u_tutar'ı gösterebileceğim bir metin kutusu ekledim. Böylece tarihler arasında kıyaslama yapabildim.

3) Sizin vermiş olduğunuz kodda ufak tefek değişiklikler yapıp Vba koduyla olayı dediğiniz gibi yaptım.

Sonuçta istediğiniz oldu sanırım...

Tabi birkaç hatırlatma yapmakta fayda var:

1) Sadece tarih alanının çıkıldığında olayına yerleştirdim kodu. Siz bunu diğer olaylara da uygularsınız artık.

2) Ben sadece b1 alanına uyguladım. Siz örneği kendinize göre çoğaltırsınız.

3) tdsharun diye bir metin kutusu koydum. Bunu küçücük hale getirin ve gizleyin. Formunuzda görünmesin.

4) Bunun aynısını sorgu ile yapmak da mümkün.

5) Bi bakın, cevabınıza göre tekrar inceleyelim...


Kolay gelsin...
22/03/2009, 12:24

bidehr

Hocam selamlar. Yardımlarınız için teşekkür ederim. Benim burada yapmak istediğim biraz farklı idi. Sizin yaazdığınız kod üyelik tarihi ile karılaştırma değil. Aidatın yatırıldığı tarihle karşılaştırma olmuş. Sizin yazdığınız kodu geliştirerek, İf if döngüsüni kullanınca amacıma ulaştım.Ancak küçük bir ayrıntıyı bilemiyorum Yaptıklarımı şöyle açıklayayım.

Tarih karılaştırmasını yapamayınca bende 2 farklı tarihal ve tarihal1(kırmızı çerçeveli) diye metin kutuları oluşturup, bunlara sizin oluşturduğunuz tdsharun (kırmızı çerçeveli) metin kutucuğundan ayları ve yılları yazdırdım

=Month([tdsharun]) =Year([tdsharun]) ile.

Sonrasında bu alınan değerlerle ilgili işlemi yapacak şu if döngüsünü b1,b2,b3... kutucuklarının olay yordamına Enter olarak yazdım.
--------------------------------
Dim Kriter1 As String

Kriter1 = IIf(Month(Date) >= 1, 5, 0)
If tarihal1 < 2009 Then
Me.b1.Value = Kriter1
ElseIf tarihal1 = 2009 And tarihal >= 1 Then
Me.b1.Value = 0
Else
Me.b1.Value = Kriter1
End If
---------------------------------
Bir yıl kullanılması için hazırladım bu programı. Çok yıllık nasıl yaparım bilemiyorum.
Buradaki amacım eğer üye bu yılda ve yeni üye olmuşsa üyelik tarihinden sonraki ay ödemeleri başlasın ve borç hanesine, bulunduğu aya göre 0 yada 5 TL yazsın. Bunu başardım. Ancak b1,b2,b3... kutucuklarının olay yordamına Enter olarak yazdığım için her seferinde bunların aktif olması için tıklamak zorundayım. Benim istediğim form açılır açılmaz bunlar otomatik gelsin. Ve ben gerekli düzenlemeyi yaptıktan sonra kaydet ile kaydedilsin.
Bu konuda yardımcı olursanız sevinirim. Teşekkür ediyorum...
1 2 3