Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abhängigkeit von Feldern

Begonnen von aisha, November 06, 2017, 13:11:15

⏪ vorheriges - nächstes ⏩

aisha

Hallo

Ich habe mal ne kurze frage.
Ich habe möchte In Abhängigkeit eines Feldes ein anderes Feld aktivieren oder eben auch nicht.
Folgende Möglichkeiten habe ich ausprobiert:
* Wenn ich nur ein if im VBA-Code habe funktioniert es.
* Wenn ich die erste gesamte if-Anweisung (andere) ausklammer funktioniert die zweite (nicht klassifiziert).
* Wenn ich die zweite if-Anweisung (nicht klassifiziert)ausklammer funktioniert die erste (andere).

Hier nun mein Problem
* Wenn ich aber nun beide if-Schleifen drin habe, ignoriert er das erste if und führt nur das zweite aus.
Kann mir jemand sagen, wo mein Gedankenfehler ist?

Unten steht mein Code.
Private Sub txtsubgruppe_andere_AfterUpdate()
Me!txtsubtyp_andere.RowSource = "SELECT Subgruppe FROM dbo_tbl_Subgruppe_Subtyp WHERE Entitaet = '" & Me!txtsubgruppe_andere & "'"
txtsubtyp_andere.Visible = True


If Me!txtsubgruppe_andere = "andere" Then
    Me!Subgruppe_andere_andere.Enabled = True
    Me!txtsubtyp_andere.Enabled = False
Else
   Me!Subgruppe_andere_andere.Enabled = False
   Me!txtsubtyp_andere.Enabled = True
End If
If Me!txtsubgruppe_andere = "nicht klassifiziert" Then
   Me!Subgruppe_andere_andere.Enabled = False
   Me!txtsubtyp_andere.Enabled = False
Else
    Me!Subgruppe_andere_andere.Enabled = False
    Me!txtsubtyp_andere.Enabled = True
End If
End Sub

Vielen Dank für jede Hilfe.

LG Aisha

DF6GL

Hallo,

vielleicht ist dies gemeint:

Private Sub txtsubgruppe_andere_AfterUpdate()
Me!txtsubtyp_andere.RowSource = "SELECT Subgruppe FROM dbo_tbl_Subgruppe_Subtyp WHERE Entitaet = '" & Me!txtsubgruppe_andere & "'"

Select Case Me!txtsubgruppe_andere
  Case "andere"
      Me!Subgruppe_andere_andere.Enabled = True
      Me!txtsubtyp_andere.Enabled = False
 
  Case "nicht klassifiziert"
   Me!Subgruppe_andere_andere.Enabled =False
   Me!txtsubtyp_andere.Enabled = False

  Case Else
   Me!Subgruppe_andere_andere.Enabled = False
   Me!txtsubtyp_andere.Enabled = True

End Select
End Sub


btw: es sollte der Tabellenaufbau (Normalisierung, Primärschlüssel ,etc.)  überdacht werden.

aisha

Hallo

Vielen Dank. Ja so funktioniert das. Leider darf ich an den Tabellenstrukturen nicht verändern.

LG Aisha

Frithjiof

Hallo aisha.

Zitat von: aisha am November 06, 2017, 13:11:15
* Wenn ich aber nun beide if-Schleifen drin habe, ignoriert er das erste if und führt nur das zweite aus.
Kann mir jemand sagen, wo mein Gedankenfehler ist?

Das erste IF wird nicht ignoriert sondern beide IFfs werden nacheinander abgearbeitet. Das zweite IF überschreibt allerdings das Ergebnis des ersten IF.
Um sowas zu verhindern gibt es neben "Select Case" noch  "ElseIf".


If Me!txtsubgruppe_andere = "andere" Then
    Me!Subgruppe_andere_andere.Enabled = True
    Me!txtsubtyp_andere.Enabled = False
ElseIf Me!txtsubgruppe_andere = "nicht klassifiziert" Then
   Me!Subgruppe_andere_andere.Enabled = False
   Me!txtsubtyp_andere.Enabled = False
else
   Me!Subgruppe_andere_andere.Enabled = False
   Me!txtsubtyp_andere.Enabled = True
End If