PDA

Vollständige Version anzeigen : OptionGroup und SetFocus


klamu
17.01.2008, 11:50
Hallo Forum,
ich habe Subforms mit mehreren OptionGroup Controls.
Jetzt habe ich folgendes festgestellt:
Wenn ich die SubForms austausche, setzt Access den Fokus mal auf das letzte Element der ersten OptionGroup und mal auf das erste Element.
Wenn ich per TAB Taste durch die OptionGroups springe entsteht derselbe Effekt.
FRagen:
Wieso? An den Werten kann es nicht liegen, da sie immer 10-1 betragen.
Wie bestimmt Access das Element auf den der Fokus geht?
Kann man das manipulieren und wie?

Ich hätte gerne den Fokus immer auf dem 1. Element, sobald die Option Group den Fokus hat.

Danke für die Tipps

Klaus

hcscherzer
17.01.2008, 11:58
Lege für jede Optionsgruppe den Standardwert auf den Wert des ersten Elements.

ebs17
17.01.2008, 12:00
Du kannst für die Optionsgruppe einen Standardwert setzen (im Tabellenentwurf bei gebundenen Steuerelementen, sonst auch in den Formulareigenschaften). Damit wird das Teilelement ausgewählt, das den gleichen Wert liefert.

klamu
17.01.2008, 12:23
Hallo und erstmal Danke
Lege für jede Optionsgruppe den Standardwert auf den Wert des ersten Elements.
Ist eine Idee, aber:
1. Funktioniert das in dem Fall nicht, da der Datensatz schon existiert.
Die optionGroup zeigt nur einen Teil des Datensatzes.

2. Ist dann nicht der Wert schon von vorherein ausgewählt?
Was in diesem Fall nicht erwünscht ist. Es dreht sich um einen Fragebogen.

Mir geht es um den Fokus auf das Element der OptionGroup.
Wie setzt man den, wenn man nicht den Namen der Element hat?
Haben die Elemente einen Index und wie spricht man den an?

Muss ich umständlich mit

for each ctl in ....

durch?
Geht das bei Optiongroups und wie?
In welcher Reihenfolge geht das dann überhaupt?
Was bedeutet die ReadingOrder übrigens für CheckBoxes?

hcscherzer
17.01.2008, 12:41
Wenn die Optionsgruppe an ein Datenfeld gebunden ist, wird immer der Button als aktiv gezeigt, wder dem Wert im Datenfeld entspricht. Und das ist auch gut so.
Wieso soll ein anderer aktiviert werden?
In einem neuen Datensatz oder in einer ungebundenen Optionsgruppe wird der Standardwert genommen.

Die Reihenfolge bestimmt, wie die Knöpfe innerhalb der Gruppe auf die Pfeil-Tasten reagieren.
Den Fokus in einem Formular kann nur die Gruppe insgesamt erhalten.

ebs17
17.01.2008, 12:53
Ergänzend zu Hans-Chistians Ausführungen:
Haben die Elemente einen Index und wie spricht man den an?
Über den Wert der Optionsgruppe, womit wir wieder beim Standardwert oder beim Wert des gebundenen Tabellenfeldes wären.

klamu
17.01.2008, 13:32
Hallo
vielen Dank für Eure Bemühungen.
Ich bin inzwischen selbst auf die Antwort meiner Fragen gekommen:
Wenn die Optionsgruppe an ein Datenfeld gebunden ist, wird immer der Button als aktiv gezeigt, wder dem Wert im Datenfeld entspricht. Und das ist auch gut so.

Wenn aber noch kein Wert gesetzt ist und kein Standardwert definiert ist, wird nichts gezeigt

Wieso soll ein anderer aktiviert werden?
In einem neuen Datensatz oder in einer ungebundenen Optionsgruppe wird der Standardwert genommen.

Es ist kein Standartwert definiert, also setzt Access den Focus auf das erste Element - das erste von oben und dann von links
Ich hatte die CheckBoxen horizontal angelegt, aber manchmal war eine Checkbox in der Reihe ein Pixel höher gerutscht und schon war der Fokus auf diesem Element. Da muss man erstmal drauf kommen, das sieht man nicht.

Die Reihenfolge bestimmt, wie die Knöpfe innerhalb der Gruppe auf die Pfeil-Tasten reagieren.
Den Fokus in einem Formular kann nur die Gruppe insgesamt erhalten.
Und wie reagieren die Knöpfe auf die Pfeiltaste?
Eben: erstmal von oben nach unten, dann von links nach rechts.
Hier die andere Antwort auf meine Frage (so hab ich die Reihenfolge rausgefunden):

Set mainctl = frm.optiongroupname
For Each ctl In mainctl.Controls
If ctl.ControlType = acCheckBox Then

Debug.Print "1 - " & ctl.Name
'und hier wird eben gelistet von oben und dann von links
End If
Next ctl

Das leben ist einfach man muss es nur wissen ;-)
Thanks Leute und schönen Tag
Klaus

ebs17
17.01.2008, 14:07
Nachtrag:
Und wie reagieren die Knöpfe auf die Pfeiltaste?
Erst einmal ist die Reaktion auf die Pfeiltaste so wie in Extras/Optionen eingestellt - es kann auch zum nächsten Steuerelement gesprungen werden.