Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: asiat am Februar 13, 2011, 18:02:57

Titel: Optionsgruppe abwählen ?
Beitrag von: asiat am Februar 13, 2011, 18:02:57
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.
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Maxel am Februar 13, 2011, 18:23:32
Du könntest ein Optionsfeld dieser Optionsgruppe als "Ausschalter" benutzen, das keine der anderen Bedingungen erfüllt.
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: asiat am Februar 13, 2011, 18:28:01
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 ?
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Josef P. am Februar 13, 2011, 18:39:54
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: database am Februar 13, 2011, 18:41:02
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)
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Maxel am Februar 13, 2011, 18:48:40
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.
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: asiat am Februar 13, 2011, 20:09:28
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  ?
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: oma am Februar 14, 2011, 00:26:35
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Josef P. am Februar 14, 2011, 09:37:19
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: asiat am Februar 14, 2011, 10:46:04
oma
man 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)
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: MzKlMu am Februar 14, 2011, 10:51:41
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.
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: oma am Februar 14, 2011, 11:03:03
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: database am Februar 14, 2011, 11:05:47
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.
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Josef P. am Februar 14, 2011, 11:16:22
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: MzKlMu am Februar 14, 2011, 11:25:47
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: database am Februar 14, 2011, 11:27:43
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!
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Josef P. am Februar 14, 2011, 11:36:10
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
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: oma am Februar 14, 2011, 12:17:45
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 Sub


somit wird bei Auswahl Option4 "Auswahl zurücksetzen" die Optionsgruppe gnadenlos auf NULL gesetzt.

Gruß Oma
Titel: Re: Optionsgruppe abwählen ?
Beitrag von: Josef P. am Februar 14, 2011, 12:30:19
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 Sub


Falls 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