If - else - else in VBA

Hallo @fshbb,
probiers doch mal so:

If Me.FreigabeMDerfolgt = True Then
Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = True 'grün
Me.Kombinationsfeld283.Visible = False
Else
Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = False
Me.Kombinationsfeld283.Visible = True 'rot
If Me.FreigabeMDabgelehnt = False Then
Me.Kombinationsfeld160.Visible = True 'gelb
Me.Kombinationsfeld282.Visible = False
Me.Kombinationsfeld283.Visible = False
End If
End If

Viel Erfolg & Gruß,
charly60

Liebe Wissende ,

ich bin ein absoluter Autodidaktiker und habe alles Wissen in Access mir durch Copy, Paste und ausprobieren angeeignet. Jetzt komme ich aber irgendwie nicht weiter.

Ich habe drei Kombinationsfelder, von denen eines grün, eines gelb und eines rot hinterlegt ist. Der Inhalt ist der gleiche. Jetzt will ich in Abhängigkeit von zwei Ja/Nein Feldern immer nur eines dieser drei Felder anzeigen.

Fall 1: j/n „Freigabe erfolgt“ = JA: grün

Fall 2: j/n "Freigabe erfolgt = NEIN und „Freigabe abgelehnt“ = JA: rot

Fall 3: "Freigabe erfolgt = NEIN und „Freigabe abgelehnt“ = NEIN: gelb

Das habe ich so gebaut:

Private Sub Form_AfterUpdate()

If FreigabeMDerfolgt = „true“ Then

Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = True 'grün
Me.Kombinationsfeld283.Visible = False

Else
If FreigabeMDabgelehnt = True Then
Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = False
Me.Kombinationsfeld283.Visible = True 'rot

   Else
        Me.Kombinationsfeld160.Visible = True       'gelb
        Me.Kombinationsfeld282.Visible = False
        Me.Kombinationsfeld283.Visible = False
   End If

End If
End Sub

Ich sehe aber immer nur die gelbe Kombibox…

Was mache ich falsch?

1000 Dank!

fshbb

Moin,

drei Kombinationsfelder… Der Inhalt ist der gleiche

dann bietet sich an, dafür 1 Kombinationsfeld zu nehmen und den Hintergrund entpsprechend einzufärben.

Mein Vorschlag (getestet):

Private Sub FA_Change()

    Call Set_Backcolor_K
End Sub

Private Sub FE_Change()

    Call Set_Backcolor_K
End Sub

Private Sub Set_Backcolor_K()

    Dim rot   As Long       ' #ED1C24
    Dim grün  As Long       ' #22B14C
    Dim gelb  As Long       ' #fff200
    rot = RGB(255, 0, 0)
    grün = RGB(0, 255, 0)
    gelb = RGB(255, 255, 0)

    Select Case (FE & FA)
        Case "JN", "JJ"
            K.BackColor = grün
        Case "NN"
            K.BackColor = rot
        Case "NJ"
            K.BackColor = gelb
        Case Else
    End Select
    Me.Refresh
End Sub

FE: Freigabe erfolgt; FA: Freigabe abgelehnt; K: Kombinationsfeld

Gruß Ralf

als erstes würde ich mal sagen ,
warum einmal = „true“
und dann einmal =True

da du gelb erwischt wird wohl
Bedingung 1 nicht zutreffen
und Bedingung 2 nicht zutreffen

Versuch doch erstmal rauszubekommen welchen wert
die Sachen überhaupt annehmen .

ok, danke schon einmal. ich habe die Anführungszeichen bei „true“ entfernt, hilft aber nichts. Ich lasse mir das ja/nein-Kästchen auch anzeigen und weiß daher - eigentlich - welchen Wert ich vor mir habe. Es sieht nun so aus (und funktioniert immer noch nicht):

If Me.FreigabeMDerfolgt = True Then

Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = True 'grün
Me.Kombinationsfeld283.Visible = False

Else
If Me.FreigabeMDabgelehnt = True Then
Me.Kombinationsfeld160.Visible = False
Me.Kombinationsfeld282.Visible = False
Me.Kombinationsfeld283.Visible = True 'rot

   Else
        Me.Kombinationsfeld160.Visible = True       'gelb
        Me.Kombinationsfeld282.Visible = False
        Me.Kombinationsfeld283.Visible = False
   End If

End If

… dass er immer auf die letzte Bedingung (gelb) durchrutscht, heißt für mich, dass er die obigen Bedingungen nicht als wahr anerkennt, auch wenn ein Häckchen gesetzt ist. Muß ich die Bedingung mit = 0 bzw. -1 ansprechen?

MfG,

jkl

… hach, ihr seid Helden. Was täte ich ohne Euch! Ein gaaaanz großes Dankeschön. Ihr seid Spitze!

Viele Liebe Grüße

fshbb

Hi,

noch eine Kleinigkeit:

Kombinationsfeld160

ist kein guter Name. In den Eigenschaften kannst Du unter Andere einen Namen Deiner Wahl vergeben.

Gruß Ralf