Formda If İç İçe Kullanım

1 2 3 4 5
29/04/2019, 17:09

haziran4

Teşekkür ederim. 

Yillik_Vize_Bitis_Trh geçmemiş, Diğer bitim tarihlerinden biri mesela AltYapi_Vize_Bitis_Trh geçmiş yapıyorum Form Yeniden Açıldığında Aktif yazıyor Pasif olamsı lazım. Yeni Yazarken Problem yok
29/04/2019, 17:57

ozanakkaya

Merhaba, elseif kısmı aşağıdaki gibi olmalı

If Not IsDate(Me.Yillik_Vize_Bitis_Trh) Then
   Me.Aktif_Pasif = "Kapalı"
   Exit Sub
End If


If Me.Yillik_Vize_Bitis_Trh < Date And Me.AltYapi_Vize_Bitis_Trh > Date Then

Me.Aktif_Pasif = "Pasif"

ElseIf Me.Yillik_Vize_Bitis_Trh < Date And Me.Endustriyel_Donusum_Belgesi_Vize_Bitis_Tarihi > Date Then

Me.Aktif_Pasif = "Pasif"

ElseIf Me.Yillik_Vize_Bitis_Trh < Date And Me.ic_Tesisat_Belgesi_Vize_Bitis_Tarihi > Date Then

Me.Aktif_Pasif = "Pasif"

Else

Me.Aktif_Pasif = "Aktif"

End If
Vize bitiş tarihi yok ise kapalı,
Herhangi biri geçmiş ise pasif.
Hiç biri değil ise aktif
29/04/2019, 18:33

haziran4

(29/04/2019, 17:57)ozanakkaya yazdı: Merhaba, elseif kısmı aşağıdaki gibi olmalı

If Not IsDate(Me.Yillik_Vize_Bitis_Trh) Then
   Me.Aktif_Pasif = "Kapalı"
   Exit Sub
End If


If Me.Yillik_Vize_Bitis_Trh < Date And Me.AltYapi_Vize_Bitis_Trh > Date Then

Me.Aktif_Pasif = "Pasif"

ElseIf Me.Yillik_Vize_Bitis_Trh < Date And Me.Endustriyel_Donusum_Belgesi_Vize_Bitis_Tarihi > Date Then

Me.Aktif_Pasif = "Pasif"

ElseIf Me.Yillik_Vize_Bitis_Trh < Date And Me.ic_Tesisat_Belgesi_Vize_Bitis_Tarihi > Date Then

Me.Aktif_Pasif = "Pasif"

Else

Me.Aktif_Pasif = "Aktif"

End If
Vize bitiş tarihi yok ise kapalı,
Herhangi biri geçmiş ise pasif.
Hiç biri değil ise aktif 
aynen boş iken Kapalı yazıyor Çıkıp Girdiğimde Kapalı Duruyor. Ama Diğertarihler geçmiş ise Pasif yazıyor. formdan çıkıp yeniden o kaydı açtığımda aktif yazıyor şaşılacak valla nerde yanlış yapıyorum bilemedim üstad
29/04/2019, 18:57

ozanakkaya

Merhaba, kodu aşağıdaki ile değiştirin. Farklı tarihler girip F5 ile formu yenileyerek test edin.

Dim GDate, G1, G2, G3, G4 As Long


GDate = CLng(Date)
G1 = CLng(Nz(Me.Yillik_Vize_Bitis_Trh, Date))
G2 = CLng(Nz(Me.Endustriyel_Donusum_Belgesi_Vize_Bitis_Tarihi, Date))
G3 = CLng(Nz(Me.ic_Tesisat_Belgesi_Vize_Bitis_Tarihi, Date))
G4 = CLng(Nz(Me.AltYapi_Vize_Bitis_Trh, Date))


If Not IsDate(Me.Yillik_Vize_Bitis_Trh) Then
   Me.Aktif_Pasif = "Kapalı"
   Exit Sub
End If

If (G1 > GDate) And (G4 < GDate) Then

   Me.Aktif_Pasif = "Pasif"

ElseIf (G1 > GDate) And (G2 < GDate) Then

   Me.Aktif_Pasif = "Pasif"

ElseIf (G1 > GDate) And (G3 < GDate) Then

   Me.Aktif_Pasif = "Pasif"

Else

   Me.Aktif_Pasif = "Aktif"

End If
30/04/2019, 08:16

haziran4

Üstad İlgilenmeniz için teşekkür ederim.

 sayfayı yeniledim mi boş bırakıldığında kapalı oluyor. tarihlerin biri geçmiş ise aktif geliyor. Şaşılacak valla
30/04/2019, 08:46

ozanakkaya

Benim denemelerimde herhangi bir sorun yok. Ben kodda geçen 4 metin kutusunda deneme yapıyorum. Metin kutularının isimlerini kontrol edin. Ayrıca hatalı olduğunu belirttiğiniz hususları yazın. Benim gözümden kaçan bir yer olabilir.
1 2 3 4 5