Skip to main content

AccessTr.neT


Tarih fonksiyonlarını vba ile toplamak

Tarih fonksiyonlarını vba ile toplamak

#7
(22/01/2015, 12:43)atoz112 yazdı: Sayın nacar,
 
Öncelikle bir husus açıklığa kavuşturmak yerinde olacaktır kanısındayım,ki talepleriniz ile size paylaşılan bilgilerin katkıları daha net anlaşılabilir olması sağlansın.
 
Konunuzdaki gerek talep ifadeleriniz ve gerekse de eklediğiniz uygulama incelendiğinde,sizin beklentilerinizin aşağıdaki gibi olduğu görülmüştür:

a)      Metin31 adlı denetimin içeriğinde;t1 adlı metin kutusu değerinin +8 etiketinde yazıldığı gibi 8 yıl sonrası gösterilmek istenmekte
 
b)      Metin29 adlı denetimin içeriğinde;YIL adlı 1,2,3 Yıl seçeneklerinden birinin seçim sonucunun Metin31 adlı metin kutusu değerine ilave edilerek gösterilmek istenmekte
 
c)       Metin33 adlı denetimin içeriğinde;Metin27 adlı metin kutusunda yer alacak olan t2 ve t3 adlı metin kutularındaki tarih farkı değerini içeren değerinin yukarıdaki b maddesindeki ilgili metin kutusuna göre gün değerinin eklenmesi gösterilmek istenmekte
 
d)      Metin35 adlı denetimin içeriğinde;talebinizi yeniden düzenlediğiniz 1.mesajınızdaki gibi Metin 33 denetiminin sonucuna göre 01.09 tarihinden önce veya sonrasına göre değer yazması istenmekte.
 
Yukarıda yazılı bütün bu taleplerinizi içerecek şekilde hazırlanarak konunuzun 5.mesajına eklenen örnek uygulama içerisinde;
 
1)      Metin31 adlı denetimin içeriğinde; =DateAdd("yyyy";8;[t1]) kod ifadesi ile,t1 adlı metin kutusundaki tarih değerine göre 8 yıl sonrası gösterilmiştir.
 
2)      Metin29 adlı denetimin içeriğinde; =DateAdd("yyyy";[Metin21];[Metin31]) kod ifadesi ile,form üzerindeki Yıl seçimine göre tercih edilen yıl kadar Metin31 değerine dahil edilmiştir.
 
3)      Metin33 adlı denetimin içeriğinde; =DateAdd("d";[Metin27];[Metin29]) kod ifadesi ile,form üzerindeki tarihler arası fark değeri Metin29 değerine dahil edilmiştir.
 
4)      Metin35 adlı denetimin içeriğinde; Metin 33 denetiminin sonucuna göre 01.09 tarihinden önce veya sonrasına göre değer yazması sağlanmıştır.
 
Sayın nacar,
Bütün bu açıklamalar neticesinde,giriş kısmında belirtilen taleplerinize göre size sağlanan bilgi ve örnek paylaşımlarının bunları karşıladıkları görülmektedir.fakat,5.mesajınızda yazdığınız bu ifade ile;bu paylaşımların bir anlam içermediği ve sizin kendi halinize bırakılarak çözümü kendinizin bulmanız istendiği izlenimi vermektedir.böyle bir yaklaşım,konuyu incelemek isteyecekler için olumsuz düşünmeye neden olacaktır.
 
kaldı ki,ifadenizdeki “çıkartma” ibaresi anlaşılmamaktadır.zira,bu taleplerinizde böyle bir işlemi değil aksine sadece değerlere göre “toplama” anlamında elde edilecek tarih değerlerine değer ekleme söz konusudur.
 
Sunulan çözüm paylaşımları eğer taleplerinizi karşılamaya yönelik yeterli değilse,bunların hangi nedenlerle ve olması gerekenlerin tam olarak ne olduklarına dair ayrıntılı bilgiler sunmanız halinde,bu desteklerin bu yönlendirmeler ışığında devamını sağlamanız yerinde olacaktır kanısındayım.bilginize...İyi çalışmalar,Saygılar.
 
Sayın Atoz112
Sizi de yoruyorum kusuruma bakmayın...
Çok fazla internete girmeye müsait olamadığı için kısa mesajlarla cevap verdim hep...
  5.nci mesajımda " Metin kutularında Vba olarak toplama ve çıkartma işlemini zorda olsa ders notlarından çözdüm." derken kendi imkanlarımla çözmeyi başardım demek istedim, kimseye ukalalık yapmak istemedim. Yanlış anlaşıldıysam özür dilerim.
  Benim ihtiyacım olan şey şuydu;
  Yapmaya çalıştığım Access çalışmasında bir başlama tarihi var( Metin 1), bu tarihe standart bir süre eklenmesi gerekiyor (seçenek düğmesi )( örnek: 1,2,3 yıl gibi), diğer 2 metin kutusundaki ( Metin 2 - Metin 3) zaman farkını ( gün olarak) metin 1 üzerine eklemem ve ortaya çıkan sonucun ise 01.09.0000 tarihinden büyük ise bir yıl sonraya atması gerekiyordu ve yeni sayfa açıldığında ise metin kutularının yeni bir hesaplama yapmak için boş olması gerekiyordu.
   Benim ilk gönderdiğim örnekte malesef tarih fonksiyonlarını metin kutularının içerisine yazdığım için yeni sayfa açıldığında hem hata uyarıları veriyor hem de (seçenek düğmesi) ya da ( Metin 2 - Metin 3) zaman farkı güncellenmesine bağlı olarak sonucunda güncelleme yapmıyordu.
   Tabi ilk önce sorunu çözemedim. Son çare sizlere soru sorma gereği duydum, bir kaç gün çözüm bulamayınca, örnekler üzerinde uğraşırken aradığım Vba kod mantığını buldum...
 
  
 Private Sub Çerçeve13_AfterUpdate()
Me.Metin35 = IIf(Format(Me.Metin33, "mmdd") > "0901", DateSerial(Year(Me.Metin33) + 1, 9, 1), Me.Metin33)
End Sub



Private Sub Çerçeve23_AfterUpdate()
Me.Metin35 = IIf(Format(Me.Metin33, "mmdd") > "0901", DateSerial(Year(Me.Metin33) + 1, 9, 1), Me.Metin33)
End Sub


Private Sub t1_AfterUpdate()
Me.Metin31 = DateAdd("yyyy", 8, Me.t1)
End Sub

Private Sub t3_AfterUpdate()
Me.Metin27 = DateAdd("d", -[t2], [t3])
End Sub

Private Sub t3_Exit(Cancel As Integer)
Me.Metin35 = IIf(Format(Me.Metin33, "mmdd") > "0901", DateSerial(Year(Me.Metin33) + 1, 9, 1), Me.Metin33)
End Sub

 
 
 
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task