Gibt es eine möglichkeit nach Auswahl einer Option in einer Optionsgruppe wieder die Option abwählen?
aber nicht in dem ich eine andere Option auswähle oder ein zusätzliche Schaltfläche erstellen mit "Reset" Funktion.
Du könntest ein Optionsfeld dieser Optionsgruppe als "Ausschalter" benutzen, das keine der anderen Bedingungen erfüllt.
ich möchte ohne zusätzlichen "Ausschalter" auskommen :-\
vielleicht kann man das programmieren ?
ich meine wenn man auf die option klickt die schon ausgewählt ist soll die sich abwählen ?
Hallo!
Du könntest z. B. auf MouseUp der Umschaltfläche oder des Optionsfeldes reagieren und dann den Wert der Optionsgruppe einstellen.
Prinzip:
Private Sub Option1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 AND Me.DeineOptionsgruppe.Value = 1 Then Me.DeineOptionsgruppe.value = Null
End Sub
mfg
Josef
Hallo,
indem du den Wert der Gruppe aus 0 setzt.
Wenn du die Gruppe richtig erstellt hast befindet diese sich in einem Rahmen. Um festzustellen welcher Wert angeklickt wurde, wird der Wert des Rahmens(Gruppe) abgefragt.
Wenn du diesen Rahmen dann den Wert 0 zuweist, wird die Auswahl wieder zurückgenommen.
Sinn macht das m.E. nur beim Öffnen eines Formulars - da kannst du aber auch festlegen, dass die Gruppe den Standardwert 0 besitzt. (In den Eigenschaften der Gruppe, des Rahmens ... Daten... Standardwert = 0)
Zitatich meine wenn man auf die option klickt die schon ausgewählt ist soll die sich abwählen ?
Das ließe sich mit einer Simulation der Optionsgruppe bewerkstelligen, indem Du die entsprechende Anzahl von Kontrollkästchen platzierst.
Ein Klick auf ein bereits angewähltes Kästchen könnte dieses ausschalten; war das Kästchen noch nicht angewählt, müssen alle anderen Kontrollkästchen ausgeschaltet werden.
danke an alle
ich habe das so gelöst wie Josef P. gemeint hat
Private Sub Option1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Me.Option1.OptionValue = Me.MeineOptionsgruppe Then
Me.newsletter.Value = Null
End If
End Sub
und das für jede weitere Option, nur beim Abwählen wird die erste Option leicht blau gefärbt
kann mir jemand erklehren warum? hat jemand Lust das auszuprobieren ?
Hallo,
eigentlich reicht doch zum Abwählen nur eine Option:
Private Sub Option1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Me.DeineOptionsgruppe.Value = 1 Then Me.DeineOptionsgruppe.Value = Null
End Sub
so oder auch mit deinem Code wird aber nichts blau??
Gruß Oma
Zitatnur beim Abwählen wird die erste Option leicht blau gefärbt
Meinst du damit die Hervorhebung wenn der Mauszeiger über dem Optionsfeld bzw. dessen Bezeichnungsfeld steht?
mfg
Josef
omaman muss trotzdem für jede weite Option den Code eintippen.
Josef P.
ZitatMeinst du damit die Hervorhebung wenn der Mauszeiger über dem Optionsfeld bzw. dessen Bezeichnungsfeld steht?
Ich habe 3 optionen in einer Optionsgruppe, wenn ich die Option 2 oder 3 abwähle dann wird die Option 1 hervorgehoben, sowie ob man mit der Mauszeiger über die Option stehen würde, aber das hat sich erledigt denn auf anderen PC gibts es denn Effekt nicht. (Beide Office 2010)
Hallo,
ich würde mir das alles sparen und eine 4 Option anlegen. Die 4.Option nennst Du z.B. "Nichts zutreffend". Dann hast Du das Problem erschlagen. Was spricht für Dich dagegen?
Nachtrag:
Und genau den Vorteil, den im nächsten Beitrag Oma auch geschrieben hat, wollte ich auch noch erwähnen.
Der User weis sofort was gemeint ist.
Und es ergibt sich noch der weitere Vorteil, ein Standardwert "Nichts zutreffend" kann sehr einfach gesetzt werden wenn erforderlich.
Hallo,
Zitatman muss trotzdem für jede weite Option den Code eintippen
nein, muss man nicht; mit meinen Code kann man mit einen 2-maligen Klick auf die erste Option die Optionsgruppe wieder auf NULL setzen.
Die ganze Sache hat insofern einen Nachteil, das der User dies wissen muss. Wollte gerade eine andere Lösung vorschlagen; nämlich eine weitete Option mit Bezeichnung "Keine der Auswahlmöglichkeiten" oder so ähnlich; genau das was eben Klaus vorgeschlagen hat.
Gruß Oma
Hallo,
ZitatWollte gerade eine andere Lösung vorschlagen ...
... womit dann auch die Aufgabe einer Optionsgruppe erfüllt wäre - nämlich auch diese Option anzuzeigen.
Hallo!
Zitat... womit dann auch die Aufgabe einer Optionsgruppe erfüllt wäre - nämlich auch diese Option anzuzeigen.
... aber möglicherweise nicht die Anforderung der Datenbasis NULL (also "unbekannt") im Datenfeld zu speichern, wenn die Auswahl noch nicht nicht getroffen werden konnte.
=> Auch das würde darstellbar sein, wenn man dieses zusätzliche Optionsfeld nicht in die Optionsgruppe einbindest sondern als berechnetes Steuerelement nutzt und nur innerhalb der Optionsgruppe positioniert.
(Anm.: ich gehe von einer gebundenen Optionsgruppe aus - bei einer ungebundenen ist NULL nicht wichtig, da das Speichern sowieso per Code geregelt werden wird.)
mfg
Josef
Hallo,
aber dann könnte man doch auch 0 statt Null zuweisen, oder einen anderen in der Gruppe nicht vorhandenen Wert.
Ich bin immer noch für Option 4. ;D
Hallo,
wobei mir immer wieder eine Tabelle vorschwebt, in der NULL-Werte vermieden werden.
Wenn ich also der Option 'Nix ausgewählt' den Wert 0 zuweise und diesen gleichzeitig als Standardwert für meine gebundene Gruppe verwende brauche ich keine weiteren Gedanken daran verschwenden wie ich das der DB bekanntgebe.
EDIT:
und bin damit ganz auf der Seite von MzKlMu!
Hallo!
zu "0 oder NULL":
Wenn ich im Datensatz speichern will: "Keine der vorgesehenen Optionen passt", dann bin ich auch für das Speichern von 0 oder ähnlichem. In diesem Fall entspricht das aber eigentlich einer Auswahl - welche ich auch anzeigen würde.
NULL bedeutet für mich: Es wurde noch nichts ausgewählt - es muss noch eine Auswahl getroffen werden, falls der Wert aus diesem Datenfeld später benötigt wird - ist der Wert nicht vorhanden, kann als Ergebnis dessen Nutzung nur "Kein Auswertung möglich - Wert wurde noch nicht festgelegt" kommen.
Natürlich kann man auch von Anfang an das Datenmodell so aufbauen, dass 0 gleichbedeutend mit "Keine Auswahl getroffen" ist. In einem normalisierten Tabellenaufbau müsste es auch den Wert 0 als Datensatzkennung geben, was wiederum bedeutet, dass eine Auswahl getroffen wurde. ;)
Anm.: NULL als Optionswert eines Optionsfeldes ist in einer Optionsgruppe nicht möglich. Daher der Hinweis dieses Optionsfeld nicht an die Optionsgruppe zu binden, falls NULL gepeichert werden soll.
mfg
Josef
Hallo,
also ich halte auch die Option "Auswahl zurücksetzen" als Option am besten :D
@Josef:
ZitatAnm.: NULL als Optionswert eines Optionsfeldes ist in einer Optionsgruppe nicht möglich. Daher der Hinweis dieses Optionsfeld nicht an die Optionsgruppe zu binden, falls NULL gepeichert werden soll.
natürlich kann Null nicht als Optionswert in einer Optionsgruppe angegeben werden, aber z.B. Option4 erhält als Optionswert =4 u. den Code:
Private Sub Option4_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Optionsgruppe.Value = Null
End Subsomit wird bei Auswahl Option4 "Auswahl zurücksetzen" die Optionsgruppe gnadenlos auf NULL gesetzt.
Gruß Oma
Hallo!
Zitatsomit wird bei Auswahl Option4 "Auswahl zurücksetzen" der Optionsgruppe gnadenlos auf NULL gesetzt.
... und nebenbei die Markierung dieser Option entfernt, was meiner Ansicht nach nicht das Ziel einer sichtbaren Option für "Nichts ausgewählt" ist - die sollte schon markiert bleiben, oder?
(Falls sie nicht markiert werden soll, würde ich eher zu einem "Reset-Button" tendieren, der aber in Beitrag #1 ausgeschlossen wurde.)
Ich hätte es so gelöst (falls NULL gewünscht ist):
Optionsfeld außerhalb der Optionsgruppe einfügen und dann layoutmäßig innerhalb der Optionsgruppe platzieren.
Steuerelementinhalt: =IsNull([Optionsgruppe])
Private Sub OptionKeinAuswahl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.DieOptionsgruppe.value = Null
End SubFalls die Info "Kein Auswahl" (oder wie auch immer man das nennen will) gespeichert werden soll (also festgelegt werden soll, dass keine der Optionen 1-3 passt), dann würde ich wie Peter und Klaus die Variante mit 0 als Optionswert verwenden, der dann auch als Zahl gespeichert wird.
mfg
Josef