AccessTr.neT
If-then-else şartını daha kısa nasıl yazabilirim? - 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ığı: If-then-else şartını daha kısa nasıl yazabilirim? (/konu-if-then-else-sartini-daha-kisa-nasil-yazabilirim.html)

Sayfalar: 1 2 3 4


If-then-else şartını daha kısa nasıl yazabilirim? - Hayri16 - 17/12/2009

Değerli Arkadaşlar;
Formumdaki 10 ayrı grup alanındaki verilere göre komut tuşlarını aktif pasif yapmak istedim. Oldukça uzun bir kod ortaya çıktı. Aynı zamanda istediğimi de yapmadı. Aşağıda verdiğim kodları daha kısa yazma imkanım var mı? Sevgi ve saygılarımla...
Kod:
'1.ilacı kontrol
If Alan9 = Null Or Alan9 = "" Or Alan9 = Empty Then
Komut154.Enabled = False
Else
   If Alan10 = Null Or Alan10 = "" Or Alan10 = Empty Then
   Komut154.Enabled = False
   Else
      If Alan11 = Null Or Alan11 = "" Or Alan11 = Empty Or Alan11 = "0.0" Then
      Komut154.Enabled = False
      Else
        If Alan12 = Null Or Alan12 = "" Or Alan12 = Empty Or Alan12 = "0" Then
        Komut154.Enabled = False
        Else
        Komut154.Enabled = True
End If
   End If
      End If
         End If
        
  '2.ilacı kontrol
If Alan14 = Null Or Alan14 = "" Or Alan14 = Empty Then
Komut155.Enabled = False
Else
   If Alan15 = Null Or Alan15 = "" Or Alan15 = Empty Then
   Komut155.Enabled = False
   Else
      If Alan16 = Null Or Alan16 = "" Or Alan16 = Empty Or Alan16 = "0.0" Then
      Komut155.Enabled = False
      Else
        If Alan17 = Null Or Alan17 = "" Or Alan17 = Empty Or Alan17 = "0" Then
        Komut155.Enabled = False
        Else
        Komut155.Enabled = True
End If
   End If
      End If
         End If
        
'3.ilacı kontrol
If Alan19 = Null Or Alan19 = "" Or Alan19 = Empty Then
Komut156.Enabled = False
Else
   If Alan20 = Null Or Alan20 = "" Or Alan20 = Empty Then
   Komut156.Enabled = False
   Else
      If Alan21 = Null Or Alan21 = "" Or Alan21 = Empty Or Alan21 = "0.0" Then
      Komut156.Enabled = False
      Else
        If Alan22 = Null Or Alan22 = "" Or Alan22 = Empty Or Alan22 = "0" Then
        Komut156.Enabled = False
        Else
        Komut156.Enabled = True
End If
   End If
      End If
         End If
        
'4.ilacı kontrol
If Alan24 = Null Or Alan24 = "" Or Alan24 = Empty Then
Komut157.Enabled = False
Else
   If Alan25 = Null Or Alan25 = "" Or Alan25 = Empty Then
   Komut157.Enabled = False
   Else
      If Alan26 = Null Or Alan26 = "" Or Alan26 = Empty Or Alan26 = "0.0" Then
      Komut157.Enabled = False
      Else
        If Alan27 = Null Or Alan27 = "" Or Alan27 = Empty Or Alan27 = "0" Then
        Komut157.Enabled = False
        Else
        Komut157.Enabled = True
End If
   End If
      End If
         End If

'5.ilacı kontrol
If Alan29 = Null Or Alan29 = "" Or Alan29 = Empty Then
Komut158.Enabled = False
Else
   If Alan30 = Null Or Alan30 = "" Or Alan30 = Empty Then
   Komut158.Enabled = False
   Else
      If Alan31 = Null Or Alan31 = "" Or Alan31 = Empty Or Alan31 = "0.0" Then
      Komut158.Enabled = False
      Else
        If Alan32 = Null Or Alan32 = "" Or Alan32 = Empty Or Alan32 = "0" Then
        Komut158.Enabled = False
        Else
        Komut158.Enabled = True
End If
   End If
      End If
         End If
        
'6.ilacı kontrol
If Alan34 = Null Or Alan34 = "" Or Alan34 = Empty Then
Komut159.Enabled = False
Else
   If Alan35 = Null Or Alan35 = "" Or Alan35 = Empty Then
   Komut159.Enabled = False
   Else
      If Alan36 = Null Or Alan36 = "" Or Alan36 = Empty Or Alan36 = "0.0" Then
      Komut159.Enabled = False
      Else
        If Alan37 = Null Or Alan37 = "" Or Alan37 = Empty Or Alan37 = "0" Then
        Komut159.Enabled = False
        Else
        Komut159.Enabled = True
End If
   End If
      End If
         End If

'7.ilacı kontrol
If Alan39 = Null Or Alan39 = "" Or Alan39 = Empty Then
Komut160.Enabled = False
Else
   If Alan40 = Null Or Alan40 = "" Or Alan40 = Empty Then
   Komut160.Enabled = False
   Else
      If Alan41 = Null Or Alan41 = "" Or Alan41 = Empty Or Alan41 = "0.0" Then
      Komut160.Enabled = False
      Else
        If Alan42 = Null Or Alan42 = "" Or Alan42 = Empty Or Alan42 = "0" Then
        Komut160.Enabled = False
        Else
        Komut160.Enabled = True
End If
   End If
      End If
         End If
        
'8.ilacı kontrol
If Alan44 = Null Or Alan44 = "" Or Alan44 = Empty Then
Komut161.Enabled = False
Else
   If Alan45 = Null Or Alan45 = "" Or Alan45 = Empty Then
   Komut161.Enabled = False
   Else
      If Alan46 = Null Or Alan46 = "" Or Alan46 = Empty Or Alan46 = "0.0" Then
      Komut161.Enabled = False
      Else
        If Alan47 = Null Or Alan47 = "" Or Alan47 = Empty Or Alan47 = "0" Then
        Komut161.Enabled = False
        Else
        Komut161.Enabled = True
End If
   End If
      End If
         End If
        
'9.ilacı kontrol
If Alan49 = Null Or Alan49 = "" Or Alan49 = Empty Then
Komut162.Enabled = False
Else
   If Alan50 = Null Or Alan50 = "" Or Alan50 = Empty Then
   Komut162.Enabled = False
   Else
      If Alan51 = Null Or Alan51 = "" Or Alan51 = Empty Or Alan51 = "0.0" Then
      Komut162.Enabled = False
      Else
        If Alan52 = Null Or Alan52 = "" Or Alan52 = Empty Or Alan52 = "0" Then
        Komut162.Enabled = False
        Else
        Komut162.Enabled = True
End If
   End If
      End If
         End If
        
'10.ilacı kontrol
If Alan54 = Null Or Alan54 = "" Or Alan54 = Empty Then
Komut163.Enabled = False
Else
   If Alan55 = Null Or Alan55 = "" Or Alan55 = Empty Then
   Komut163.Enabled = False
   Else
      If Alan56 = Null Or Alan56 = "" Or Alan56 = Empty Or Alan56 = "0.0" Then
      Komut163.Enabled = False
      Else
        If Alan57 = Null Or Alan57 = "" Or Alan57 = Empty Or Alan57 = "0" Then
        Komut163.Enabled = False
        Else
        Komut163.Enabled = True
End If
   End If
      End If
         End If




Cvp: If-then-else şartını daha kısa nasıl yazabilirim? - accessman - 17/12/2009

programı ekleyebilirsen yardımcı olmaya çalışabilirim

kodu şu şekilde düzenleyip dene bakalım
burada
Y komut düğmesinin numarasını
X alan numarasını temsil ediyor
bunun düzgün çalışması için komut düğmesinin ve alan isimlerinin numaralarının kesintisiz atlamadan verilmiş olmalı
mesela
Y 154 den 163 e
X 9 dan 57 e kesintisiz atlamadan olmalı
-----------------------
Private Sub Komut1_Click()
Dim Y As Integer
Dim X As Integer
Dim A As Integer

A = 0
Y = 154

For X = 9 To 57

A = A + 1

if A = 5 then
Y = Y + 1
A = 0
next X
end if

If Me("[Alan" & X & "]") = Null Or Me("[Alan" & X & "]") = "" Or Me("[Alan" & X & "]") = Empty Then

Me("[komut" & Y & "]").Enabled = False

Else

Me("[komut" & Y & "]").Enabled = True

End If

Next X

End Sub

---------------------------------------------


Cvp: If-then-else şartını daha kısa nasıl yazabilirim? - Hayri16 - 17/12/2009

Sayın accessman ilgine teşekkür ederim ama maalesef bende alanlar sıralı değil. O nedenle önerdiğiniz çözümü kullanamıyorum. Saygılarımla.


Cvp: If-then-else şartını daha kısa nasıl yazabilirim? - alpeki99 - 17/12/2009

Kod:
IF  hedehöde.şartı THEN
  Şart TRUE ise yapılacaklar
ELSE IF
  Şart doğru değilse yapılacaklar
ELSE IF
  Bir üstteki şart doru değilse yapılacaklar
ELSE
  Yuh artık tüm şartlarda olmazsa artık yapılacaklar
END IF

Aradaki ELSEIF ler istediğin kadar arttırılabilir. Alternatif olarak değerler belirliyse Switch kullanılabilir.


Cvp: If-then-else şartını daha kısa nasıl yazabilirim? - Bilgisayarcı - 17/12/2009

Bu alanlar metin mi sayısal mı?


Cvp: If-then-else şartını daha kısa nasıl yazabilirim? - Hayri16 - 17/12/2009

Sayın Alpeki99;
Dediğiniz gibi yaptım fakat komut tuşu (aşağıda yazdığım kodda) sadece Alan51="0.0" olursa false oluyor. Diğer her durumda true oluyor.
Kod:
If Alan49 = Null Or Alan49 = "" Or Alan49 = Empty Then
Komut162.Enabled = False
ElseIf Alan50 = Null Or Alan50 = "" Or Alan50 = Empty Then
   Komut162.Enabled = False
   ElseIf Alan51 = Null Or Alan51 = "" Or Alan51 = Empty Or Alan51 = "0.0" Then
      Komut162.Enabled = False
      ElseIf Alan52 = Null Or Alan52 = "" Or Alan52 = Empty Or Alan52 = "0" Then
        Komut162.Enabled = False
        Else
        Komut162.Enabled = True
End If


Sayın Bilgisayarcı alanların hepsi metin değişken türünde.