AccessTr.neT
Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. (/konu-rapor-tarihi-ile-dogum-tarihini-kontrol-edip-uyari-verdirmek.html)

Sayfalar: 1 2


Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - hegu - 28/08/2019

Arkadaşlar ekte gönderdiğim örnekte yaptırmak istediğim sürücü raporu için müracaat eden kişinin doğum tarihi ile rapor tarihini kontrol etmesini ve eğer kişinin yaşı tam 18 ise "Bu gün rapor verilemez. Rapor alması için 18 yaşını bir gün geçmesi gereklidir." uyarısını vermesini ve kayıt yapmamasını sağlamak istiyorum. Bu konuda yardım istiyorum. Teşekkür ederim.

Örneğin : Bugün 28.08.2019 Kişinin Doğum tarihi 28.08.2001 ise uyarı verip kayıt yapmaması gerekli.


Cvp: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - berduş - 28/08/2019

aşağıdaki kod işinize yarayabilir.
if DateDiff("d", DateAdd("yyyy", 18, TxtDogumTrh), Me.TxtKayitTrh)<1 then msgbox("Kaydedilemez")
önce DateAdd() fonksiyonu ile doğum tarihine 18 yıl ekleniyor
sonra DateDiff() fonksiyonu ile kayıt tarihinden çıkarılıp gün farkı hesaplanıyor gün farkı eğer 1'den küçükse uyarı veriyor


RE: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - hegu - 28/08/2019

(28/08/2019, 17:07)berduş yazdı: aşağıdaki kod işinize yarayabilir.
Kod:
if DateDiff("d", DateAdd("yyyy", 18, TxtDogumTrh), Me.TxtKayitTrh)<1 then msgbox("Kaydedilemez")
önce DateAdd() fonksiyonu ile doğum tarihine 18 yıl ekleniyor
sonra DateDiff() fonksiyonu ile kayıt tarihinden çıkarılıp gün farkı hesaplanıyor gün farkı eğer 1'den küçükse uyarı veriyor
örnek üzerinde gösterebilirmisiniz. Teşekkür ederim. Ben beceremedim.


Cvp: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - berduş - 28/08/2019

kaydetme butonuna ekleyebilirsiniz
çalışmanızda hangi formda olduğunu bilmediğimden -kayıt formundaki ekleme butonu makroya bağlıydı- sadece kodu yazdım hangi form hangi buton olacak belirtirseniz eklemeye çalışırım


RE: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - hegu - 28/08/2019

(28/08/2019, 17:45)berduş yazdı: kaydetme butonuna ekleyebilirsiniz
çalışmanızda hangi formda olduğunu bilmediğimden -kayıt formundaki ekleme butonu makroya bağlıydı- sadece kodu yazdım hangi form hangi buton olacak belirtirseniz eklemeye çalışırım
Çalışmam KayitFormu da

Kaydet butonuna denedim. Yaşı sorun olmayanlarda bile aynı uyarıyı veriyor.


Cvp: Rapor Tarihi İle Doğum Tarihini Kontrol Edip Uyarı Verdirmek. - berduş - 28/08/2019

komut33'ün kodu
kendi denmelerimde sorun çıkmadı
yalnız doğum tarihini doğru formatta değiştirmeme rağmen uygun format değil uyarısı verdi
Dim Uygunluk As Long
Uygunluk = DateDiff("d", DateAdd("yyyy", 18, CDate(CLng(Me.Dota))), CDate(CLng(Me.Ra_Ta)))
If Uygunluk < 1 Then
    MsgBox ("Kaydedilemez : " & Uygunluk)
    Exit Sub
End If
If MsgBox("Sürücü Raporunu KAYDETMEK istiyor musunuz?", vbYesNo, "KAYDETME UYARISI") = vbYes Then
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Else
Me.Undo
MsgBox ("Kaydetme işlemi iptal edilmiştir"), vbCritical, "KAYDETME İPTAL BİLGİLENDİRMESİ"
Exit Sub
End If

'Me.Requery
Me.Liste1.Requery
Me.Metin42.Requery
Me.kayitsa.Requery
Me.Metin69.Requery

eğer isterseniz "Komut33"ün "MouseMove" yada "Form_Current" olaylarına ekleyerek butonu aktif yada pasif de yapabilirsiniz, "Form_Current" olayında  tarihler değiştiğinde 2. bir kontrol kodu daha eklemek gerekebilir
"MouseMove" yada "Form_Current" olaylarına aşağıdaki kod eklenebilir
tekrar belirteyim "Form_Current" olayında, "Dota"  ve "Ra_Ta"  çıkıldığında olaylarına aşağıdaki kod tekrar yazılmalı
Dim Uygunluk As Long
If Me.NewRecord Then
    GoTo 10
    Me.Komut33.Enabled = True
End If
   
Uygunluk = CLng(Me.Ra_Ta) - CLng(DateAdd("yyyy", 18, Me.Dota))
If Uygunluk < 1 Then
    Me.Komut33.Enabled = False
Else
    Me.Komut33.Enabled = True
End If
10