4'lü If kullanımı hakkında

1 2
26/08/2010, 10:33

merter

arkadaşlar fiyat listesinde ödeme gününe göre değerler var örnek peşin 15 TL. 15 gün 18 TL. 30 gün 20 TL. Kredi kartı 16 TL.
bunları aşağıdaki gibi yaptım oam olmadı yardımlarınıza şimdiden teşekkürler.


Private Sub List18_AfterUpdate()
If ODE = 0 < 15 Then
Me.FIYAT = List18.Column(2)

ElseIf ODE = 15 < 30 Then
Me.FIYAT = List18.Column(3)

ElseIf ODE = 30 < 100 Then
Me.FIYAT = List18.Column(4)

ElseIf ODE = KK Then
Me.FIYAT = List18.Column(5)
End If

End Sub
26/08/2010, 10:36

Seruz

Bir de bu şekilde deneyin.
Kod:
Private Sub List18_AfterUpdate()
If ODE Between 0 And 15 Then
    Me.FIYAT = List18.Column(2)
ElseIf ODE Between 16 And 30 Then
    Me.FIYAT = List18.Column(3)
ElseIf ODE Between 31 And 100 Then
    Me.FIYAT = List18.Column(4)
ElseIf ODE = "KK" Then
    Me.FIYAT = List18.Column(5)
End If
End Sub

Örneğiniz olmadığı için Kredi Kartı için kullandığınız KK alanının
bir değişken mi veya bir değer mi olduğu anlaşılmıyor.
Ben değerdir diye tahmin ederek "KK" olarak değiştirdim.
Bu durumda ODE alanı metin ise, üstteki kontrolleri de CInt(ODE) olarak değiştirmek gerekebilir.

Bir deneyin, olmazsa örneğinizi eklemeniz gerekmektedir.
26/08/2010, 10:52

merter

sayın seruz ilginize teşekkürler denedim ama olmadı hata veriyor örnek ekte
26/08/2010, 11:30

Seruz

* Alt form'da kontrol koyup, üst formdaki nesneye ulaşmak için me.parent kullandım (Forms!SIPARIS.ODEME de kullanılabilirdi).
* ODE olan ismi ODEME olarak, list18 olan ismi KKOD olarak değiştirdim.
* Açılan kutu ayarlarını fiyatları düzgün gösterecek şekilde düzelttim.
* Ödeme bilgisinin düzgün girildiğini kontrol eden kontrol ekledim.
* ElseIf yerine Select Case kullandım, daha kullanışlıdır.

Kod:
Private Sub KKOD_AfterUpdate()
If IsNull(Me.Parent.ODEME) Then
    MsgBox "Ödeme günü bilgisi giriniz"
ElseIf Not IsNumeric(Me.Parent.ODEME) And Me.Parent.ODEME <> "KK" Then
    MsgBox "Kredi Kartı için KK giriniz"
ElseIf Me.Parent.ODEME < 0 Or Me.Parent.ODEME > 100 Then
    MsgBox "Ödeme günü bilgisi 0 ile 100 arasında olmalıdır"
End If
'-----------------------------------
Select Case Me.Parent.ODEME
    Case 0 To 15
        Me.FIYAT = Me.KKOD.Column(2)
    Case 16 To 30
        Me.FIYAT = Me.KKOD.Column(3)
    Case 31 To 100
        Me.FIYAT = Me.KKOD.Column(4)
    Case "KK"
        Me.FIYAT = Me.KKOD.Column(5)
    Case Else
        Me.FIYAT = 0
End Select
End Sub



Bu aralar Sql Server'da SP ve Trigger'lar ile uğraştığım için (+oruç) if içinde Between kullanmışım, özür
26/08/2010, 11:36

merter

sayın seruz ilginiz için çok çok teşekkürler.
hayırlı ramazanlar.
26/08/2010, 12:19

assenucler

Emek ve katkı için teşekkürler..
1 2