Dezember 07, 2021, 14:20:52

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Problem im VBA Code

Begonnen von uwe01, November 25, 2021, 13:52:57

⏪ vorheriges - nächstes ⏩

uwe01

November 25, 2021, 13:52:57 Letzte Bearbeitung: November 25, 2021, 14:04:55 von uwe01
Hallo Leute,

Ich habe irgendein Problem im VBA Code.
In meinen Formular habe ich zwei Kontrollkästchen einmal für Verschrottet und für Verkauft. Was auch für ein Kontrollkästchen klappt. Wenn Verschrottet markiert wird erhält man einen Roten Balken auf dem Formular, das geht auch.
Jetzt mein Problem
Jetzt wollte ich das für Verkauft auch so machen, und schon tritt das Problem auf.

Der Code steht im Formular Eigenschaften unter beim Anzeigen drin

Private Sub Form_Current()
    'Schaltet den Balken wieder aus
  Me.RoterBalken.Visible = Me.Verschrottet
  Me.RoterBalken.Visible = Me.Verkauft
 'Verhinder das zurück setzen der Auswahl und Änderungen vor zunehmen
 'Me.AllowEdits = Not Me.Verschrottet
    'Unterdrückt das Datums Feld
 Me!Text85.Visible = False
 
End Sub
Jetzt reagiert aber nur noch Verkauft mit den Roten Balken, wenn jetzt eine Anweisung rausgenommen wird klappt das wieder wunderbar. Ich schätze mal das der Code nicht richtig läuft.
Kann mir da mal einer Helfen wie ich den Code ändern muss damit das für beide Felder klappt.
Wenn nur eine Auswahl im Code drin steht kann man die Formulare durch blättern. Und was halt im Formular markiert ist reagiert auch der Rote Balken.
Habe da noch den Code für das Ausschalten oder Unterdrücken des Roten Balken im Formular.

Und der Code steht im Kontrollkästchen Eigenschaften nach Aktualisierung

Private Sub Verkauft_AfterUpdate()
    'Schaltet den Balken ein
Me.RoterBalken.Visible = Me.Verkauft
Me!Text85.Visible = True

End Sub

Ich bedanke mich schon mal für eure Antworten
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

DF6GL

Hallo,


ZitatIch schätze mal das der Code nicht richtig läuft.


Der Code läuft prächtig.



Wenn Du dies

ZitatMe.RoterBalken.Visible = Me.Verschrottet
  Me.RoterBalken.Visible = Me.Verkauft

nochmal genau nachvollziehst, dann wird Dir  sicher auch klar, was hier passiert....

uwe01

Morgen DF6GL,
Ich Danke dir für die schnelle Antwort von dir.
Und die Aussage das der Code prächtig läuft ist ja schon mal Beruhigend. Nur was jetzt hier so richtig passiert ist mir nicht klar. So Fit in VBA bin ich leider nicht das mir gleich auffällt was da nicht so ganz richtig ist am
Code.   
Was der Code machen soll das ist mir klar. Er soll den Roten Balken ausschalten wenn weder Verschrottet oder Verkauft ausgewählt ist. Wie gesagt wenn ich in dem Code nur eins habe geht es ja auch, nur bei Beide nicht.
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

DF6GL

Hallo,


ZitatNur was jetzt hier so richtig passiert ist mir nicht klar.

naja:  Der Balken wird rot,  wenn Me.Verschrottet oder  Me.Verkauft  true sind.  Und dabei bleibt es dann aber auch.

Nirgends ist definiert, was passieren soll, wenn die beiden Felder oder auch nur eines seinen Zustand ändert (bei Wechsel auf einen anderen Datensatz)



ZitatEr soll den Roten Balken ausschalten wenn weder Verschrottet oder Verkauft ausgewählt ist

das muss "ihm" halt auch gesagt werden...  ;)

uwe01

Hallo DF6GL,
 Das Grund Prinzip ist mir schon klar gewesen.
Wenn ich nur ein Befehl in der Sub Anweisungen habe sagen wir Mal Verschrottet und das kontrollkästchen von Verschrottet markiere wir der Rote Balken angezeigt. Blätter ich jetzt zum nächsten Datensatz und Verschrottet ist nicht markiert schaltet sich der Rote Balken aus.
Wie gesagt wenn ich die zweite Anweisungen in der Sub schreibe und geht das mit den Balken nicht mehr so Richtig.
Also gehe ich davon aus das in der Sub Anweisungen irgendwas nicht richtig ist.
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

DF6GL

Hallo,

nein, an der Logik ist etwas falsch...

Beschreibe mal, bei welche Zuständen der KKs der Balken sichtbar sein soll und bei welchen nicht.


verschrottet    verkauft   sichtbar     
    Nein          Nein        ?
    Ja            Nein        ?
    Nein           Ja         ?
    Ja             Ja         ?




Ersetze die Fragezeichen durch Ja oder Nein, je nachdem wie es sein soll.

uwe01

Hallo,
Wenn kein kk gesetzt ist soll der Rote Balken aus sein.
Wenn Verschrottet kk gesetzt ist soll der Rote Balken an sein.
Wenn verkauft kk gesetzt ist soll der Rote Balken an sein.
Beide kk zusammen wird eigentlich nicht benutzt.
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

MzKlMu

November 27, 2021, 17:52:25 #7 Letzte Bearbeitung: November 27, 2021, 17:58:26 von MzKlMu
Hallo,
Zitat von: undefinedBeide kk zusammen wird eigentlich nicht benutzt.
Eigentlich wäre das ein typischer Anwendungsfall für eine Optionsgruppe, denn es braucht keine 2 KK, ein Zahlenfeld reicht (1=Verkauft, 2=Verschrottet). Bei einer Optionsgruppe kann immer nur ein Zustand gewählt werden. Was ja hier ausreicht, entweder verschrottet oder verkauft. Steht kein Wert im Feld trifft keins von beiden zu. Und ein Tabellenfeld wird auch noch eingespart.

Und dann reicht ganz einfach:
Me.RoterBalken.Visible = Nz(Me.NameOptGruppe,0) >= 1
Gruß
Klaus