PDA

Vollständige Version anzeigen : After Update funz. Nicht 100%


Marcys
18.01.2008, 07:55
Hallo,

ich habe ein Optionsfeld was ich aktivieren oder deaktivieren kann/möchte.

Nach Aktivierung des optionfeldes soll in einem andrem Textfeld [Fehlerbeschreibung] ein Text erscheinen. Dies klappt nur bedingt.

Als after_update funktion auf dem optinsfeld habe ich folgendes stehen:

If opt_WArtung = True Then
Me!Fehlerbeschreibung = "Reinigen der Konturen, Lüftungen, Schieber, Führungen und Bolzen - fetten der Führungen und Bolzen"
End If
If opt_WArtung = False Then
Me!Fehlerbeschreibung = ""
End If


In diesem Fall muss ich noch in das textfeld [Fehlerbeschreibung] rein klicken damit der Text ersichtlich wird und umgekehrt.

Wenn ich die Funktion von After_update auf _click umstelle passiert das Selbe.

Habe ich Code etwas falsch gemacht?

agmesia
18.01.2008, 08:03
habs selber net so mit after update, könntest ja mal "Bei Änderung" versuchen oder requery einbauen.

If opt_WArtung = True Then
Me!Fehlerbeschreibung = "Reinigen der Konturen, Lüftungen, Schieber, Führungen und Bolzen - fetten der Führungen und Bolzen"
End If
If opt_WArtung = False Then
Me!Fehlerbeschreibung = ""
End If
Me!Fehlerbeschreibung.Requery

Marcys
18.01.2008, 08:14
hallo marco,
danke für den tipp.
die auswahl für mein opt_feld bei änderung gibt es leider nicht.
gibt es evtl. eine andere variante?

agmesia
18.01.2008, 08:25
vieleicht ja so

Private Sub OptionsGruppe_AfterUpdate()
Select Case OptionsGruppe
Case 1
Me!Fehlerbeschreibung = "Text"
Case 2
Me!Fehlerbeschreibung = ""
End Select
End Sub

SHeyer
18.01.2008, 09:03
Hast du denn auch schon den Vorschlag von agmesia mit

If opt_WArtung = True Then
Me!Fehlerbeschreibung = "Reinigen der Konturen, Lüftungen, Schieber, Führungen und Bolzen - fetten der Führungen und Bolzen"
End If
If opt_WArtung = False Then
Me!Fehlerbeschreibung = ""
End If
Me!Fehlerbeschreibung.Requery

ausprobiert?

Marcys
18.01.2008, 10:44
hallo,
egal was ich probiere. Alles wirkt sich wie in meinem 1 Beitrag aus. D. h. anglicken opt_Wartung und dann ein Klick in die Fehlerbeschreibung erst dann erscheint der TExt :-(

Josef P.
18.01.2008, 10:48
Ist Me!Fehlerbeschreibung das Steuerelement oder das Datenfeld?
Vielleicht hilft Me.Refresh oder Me.Recalc weiter.

SHeyer
18.01.2008, 10:52
sonst könnte dir evtl. eine etwas "unschöne" Methode helfen und zwar könnte man nach deiner if-Anweisung den Fokus auf das besagte Feld setzen.

Gruß
Sören

Marcys
18.01.2008, 11:27
Hi,
zunächst vielen Dankt für die Unterstützung.
Das Feld ist ein Steuerelement.

@sheyer
Idee ist zwar gut, jedoch wenn ich den focus drauf setze kann ich genauso gut drauf klicken insofern...

Josef P.
18.01.2008, 11:35
Wenn Me!Fehlerbeschreibung das Steuerelement anspricht, sollte die Anzeige des neuen Wertes sofort wirksam werden. - Außer im Hintergrund läuft ein Code weiter, der die automatische Aktualisierung der Formulardarstellung verhindert.
Damit access etwas "Luft" zum Anzeigeaktualisierung bekommt, könnte in so einem Fall DoEvents helfen. (BTW: ich hätte nicht gedacht, dass Refresh, Recalc oder repaint nicht ausreichen)

Kannst du vielleicht eine Beispiel-mdb zeigen, bei der diese Verhalten auftritt?

SHeyer
18.01.2008, 11:54
also für mich würde es schon einen Unterschied machen, ob ich das Feld anklicken muss oder nicht... aber egal.

hast du auch schon einmal probiert den refresh / requery auf das gesamte Formular anzuwenden? Vielleicht könnte das ja helfen

agmesia
18.01.2008, 13:22
hab da jetzt auch ma eine stumpfe frage warscheinlich, aber was ist bei dir Optionsgruppe die du an und abklicken kannst? schau ma mein screenshot, net das ich irgendwo was falsch verstehe

wenn du mit einer der Optionsgruppen arbeiten solltest

muss die Select Caste Anweisung die ich vorhin gepostet habe funktionieren, habe es selber getestet, und zwar sobald du da was auswählst, ohne requery oder sonst was.

Dabei gibt der Optionswert (in den eigenschaften zu sehen)

die Zahl vom Case an

Case 1
Case 2
etc...

Scorefun
18.01.2008, 14:22
@agmesia: er hat keine Optionsgruppe, sondern nur ein Optionsfeld, das entweder angeklickt ist (true) oder eben nicht (false)

BTW - ich kann diesen Umstand bei mir ebenfalls nicht nachvollziehen.
Der Text erscheint sofort, wenn ich das Optionsfeld anklicke.

Vielleicht mal Beispiel-DB posten; dann kann man da mal reinschauen...(wie Josef schon schrieb)

Marcys
18.01.2008, 15:09
Hallo,
habe mal probeweise eine ganze neue DB erstellt. Und mein o. geposteten Code eingefügt. Und siehe da, es klappt. ABer wie gesagt, es ist eine jungfräuliche DB. Evtl. stimmt etwas mit meinem Formular nicht?
Jetzt wundert es mich. Und ich habe gar keine Ahnung woran es liegt.
Bin jetzt schon zu Hause und die orginal DB ist in der Fa.

Marcys
18.01.2008, 15:11
@Josef,

stimmt. In der Orginal DB habe ich einen Timer im Hintergrund laufen. vll. hängt es damit zusammen?

Josef P.
18.01.2008, 15:20
Alles ist möglich, aber fix ist nix. ;)
Was passiert innerhalb der Timer-Prozedur?

Marcys
18.01.2008, 16:25
Hallo Josef,

diese Frage werde ich am Monat beantworten könne, wenn ich wieder die DB vor mir habe. Melde mich dann. Bis dahin schönes WE