Skip to main content

AccessTr.neT


Vba Da İf Else Elseıf Yapısı Hakkında Bir Soru.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
3
358

Vba Da İf Else Elseıf Yapısı Hakkında Bir Soru.

Çözüldü #1
Merhaba
Uygulamam da Menuden tıklandığında açılan pergole formumda Cephe Ölçüsü textbox'ının exit olay yordamına yazdığım kod da bana çok garip gelen neden olmadığı konusunda anlamlandıramadığım bir durum var. 2 şartım var. 1.si Girilen cephe ölçüsü değerinin 8000 e eşit ve büyük olduğu bir durumda ray sayısını 3 den 4 e arttırmak ki bu durumu gerçekleştiriyorum yazdığım kodda. 2.si ise Girilen Cephe ölçüsü değeri eğer 4000 den küçük ise bu seferde ray sayısını 3 den 2 ye düşürmek. Bunu bir türlü gerçekleştiremedim. Yani ilk if durumuna bakılır oradaki şart gerçekleşmiyorsa sonraki if bloğuna bakılır. Hangi if bloğundaki Şart gerçekleşiyorsa o if bloğundaki kod çalışır benim bildiğim. Burada neden çalışmıyor anlamadım. Yardımlarınız için teşekkür ederim.

Not : Else durumunda da ray sayısı 3 de stabil kalacak.

[Resim: do.php?img=11287]

Kod:
Private Sub TextBox_CepheOlcusu_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If TextBox_CepheOlcusu.Value >= 8000 Then
    result = MsgBox("Cephe ölçüsü Limit değerin üstünde..." & vbNewLine & "Ray sayısı güncellenecek.", vbYesNo + vbCritical, "WINPERAX Teklif Bilgi Ekranı")
If result = vbYes Then
    ComboBox_RaySayisi.ListIndex = 2
    MsgBox "Ray sayısı güncellendi", vbExclamation, "WINPERAX Teklif Bigi Ekranı"
Else: result = vbNo
    MsgBox "DİKKAT" & vbNewLine & "Sistem bileşenlerinden Ray Sayısı güncellenemedi...", vbOKOnly + vbCritical, "WINPERAX Teklif Bilgi Ekranı"
    ComboBox_RaySayisi.ListIndex = 1

If TextBox_CepheOlcusu.Value < 4000 Then
    result = MsgBox("Cephe ölçüsü Limit değerin altında..." & vbNewLine & "Ray sayısı güncellenecek.", vbYesNo + vbCritical, "WINPERAX Teklif Bilgi Ekranı")
If result = vbYes Then
    ComboBox_RaySayisi.ListIndex = 0
    MsgBox "Ray sayısı güncellendi", vbExclamation, "WINPERAX Teklif Bilgi Ekranı"
Else: result = vbNo
    MsgBox "DİKKAT" & vbNewLine & "Sistem bileşenlerinden Ray Sayısı güncellenemedi...", vbOKOnly + vbCritical, "WINPERAX Teklif Bilgi Ekranı"
    ComboBox_RaySayisi.ListIndex = 1

End If
End If
End If
End If


End Sub

.rar DENEME.rar (Dosya Boyutu: 257,19 KB | İndirme Sayısı: 5)
Access Çekirgesi 
[Resim: img-cray.gif]


#2
Alttaki kodu dener misin?
Private Sub TextBox_CepheOlcusu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox_CepheOlcusu.Value >= 8000 Then
ComboBox_RaySayisi.ListIndex = ComboBox_RaySayisi.ListIndex + 1
result = MsgBox("Cephe ölçüsü Limit değerin üstünde..." & vbNewLine & "Ray sayısı güncellenecek.", vbYesNo + vbCritical, "WINPERAX Teklif Bilgi Ekranı")
If result = vbYes Then
MsgBox "Ray sayısı güncellendi", vbExclamation, "WINPERAX Teklif Bigi Ekranı"
  Else: result = vbNo
      MsgBox "DİKKAT" & vbNewLine & "Sistem bileşenlerinden Ray Sayısı güncellenemedi...", vbOKOnly + vbCritical, "WINPERAX Teklif Bilgi Ekranı"
    ComboBox_RaySayisi.ListIndex = 1
End If
ElseIf TextBox_CepheOlcusu.Value < 4000 Then
  result = MsgBox("Cephe ölçüsü Limit değerin altında..." & vbNewLine & "Ray sayısı güncellenecek.", vbYesNo + vbCritical, "WINPERAX Teklif Bilgi Ekranı")
ComboBox_RaySayisi.ListIndex = ComboBox_RaySayisi.ListIndex - 1
If result = vbYes Then
MsgBox "Ray sayısı güncellendi", vbExclamation, "WINPERAX Teklif Bigi Ekranı"
  Else: result = vbNo
      MsgBox "DİKKAT" & vbNewLine & "Sistem bileşenlerinden Ray Sayısı güncellenemedi...", vbOKOnly + vbCritical, "WINPERAX Teklif Bilgi Ekranı"
    ComboBox_RaySayisi.ListIndex = 1
  End If
End If
End Sub
"Dünyayı fazla düşünme."
Shocked #3
@userx hocam çok teşekkürler. Şimdi uğradığım başarısızlığı hazmetmeye çalışacağım.Img-grin
Access Çekirgesi 
[Resim: img-cray.gif]


#4
Devam...
"Dünyayı fazla düşünme."

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task