Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: uwe01 am November 25, 2021, 13:52:57

Titel: Problem im VBA Code
Beitrag von: uwe01 am November 25, 2021, 13:52:57
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
Titel: Re: Problem im VBA Code
Beitrag von: DF6GL am November 25, 2021, 14:49:01
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....
Titel: Re: Problem im VBA Code
Beitrag von: uwe01 am November 26, 2021, 07:00:28
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.
Titel: Re: Problem im VBA Code
Beitrag von: DF6GL am November 26, 2021, 13:50:42
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...  ;)
Titel: Re: Problem im VBA Code
Beitrag von: uwe01 am November 26, 2021, 18:58:35
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.
Titel: Re: Problem im VBA Code
Beitrag von: DF6GL am November 26, 2021, 21:10:16
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.
Titel: Re: Problem im VBA Code
Beitrag von: uwe01 am November 27, 2021, 16:44:44
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.
Titel: Re: Problem im VBA Code
Beitrag von: MzKlMu am November 27, 2021, 17:52:25
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
Titel: Re: Problem im VBA Code
Beitrag von: uwe01 am Dezember 18, 2021, 19:18:44
Hallo MzKIMu,
Hallo DF6GL,

habe mein Problem mit eurer Hilfe gelöst.
Den Roten Balken habe ich komplett raus genommen. Habe einfach bei dem Kontrollkästchen
ein Textfeld für ein Datum angehängt. Wenn das Verkauf Kontrollkästchen markiert wird muß der User auch
ein Datum eingeben. Und das lese ich dann mit einer Abfrage aus, und Schreibe es in eine neue Tabelle.
Somit werden die Daten nicht gelöscht.

Danke euch beibe für eure Anregungen und Antworten
Titel: Re: Problem im VBA Code
Beitrag von: Beaker s.a. am Dezember 20, 2021, 17:22:56
Hallo Uwe,
ZitatHabe einfach bei dem Kontrollkästchen ein Textfeld für ein Datum angehängt.
Das mit dem Datumsfeld lag mir sofort auf der Zunge (hab's leider erst heute gelesen).
Mit dem Datumsfeld werden die Checkboxen allerdings obsolet. Denn die Antwort auf die
die Frage ob, ist in der Antwort wann ja impliziert.

gruss ekkehard