Kurios! setfocus?

ronaldo84

Erfahrenes Mitglied
Hallo,

ich habe eine Form, auf der ist ein Textfeld. Wenn der Wert des Textfeldes 0 ist soll das Welt den Focus behalten. Dies mache ich mit
Code:
Private Sub VP_E_Exit(Cancel As Integer)
If ((Me![VP_E].Value = 0) And (Me![Staffel].Value = "videostation.info")) Then
    MsgBox ("Bitte VP eingeben")
    Me![VP_E].SetFocus
  Exit Sub
End If
End Sub
Er bingt die Meldung, man sieht auch kurz wie das Feld VP_E den Focus hat, dann geht der Focus aber weiter in das Feld in das man geklickt hat. Weiß jemand warum? Wie kann ich das vermeiden?

€:
Ich habe es jetz gelöst mit
Code:
Private Sub VP_E_Exit(Cancel As Integer)
while ((Me![VP_E].Value = 0) And (Me![Staffel].Value = "videostation.info"))
    doevents
    Me![VP_E].SetFocus
wend
End Sub

Aber trotzdem bleibt meine Frage bestehen. Warum erhält das Textfeld nur kurz den Focus und danach springt dieser weiter zum Textfeld in das geklickt wird?
 
Zuletzt bearbeitet:
du müsstest Cancel auf true setzten

es liegt daran, das in irgend einer funktion im gotfocus ereignis vermutlich deine Prüfung aufgerufen wird der Focus wird umgesetzt auf dein Textfeld in der Queue ist aber immer noch das nicht beendete Click ereignis welches nach dem Setfocus aufgerufen wird.
ich hoffe das wqar jetzt nicht zu :confused:

Gruß bb
 
Das Thema ist zwar schon etwas länger her, habe aber wieder das gleich Problem, nur unter anderen Bedingungen.
Ich habe ein Formular, auf dem befinden sich diverse Textfelder und ein Webbrwoser-Controll. Mit dem Formular werden Artikel dargestellt. Das webrowsercontroll soll Bilder von dem Produkt aus dem Internet darstellen. Also habe ich bei dem Event "Form Current" folgenden Code geschrieben.
Code:
Private Sub Form_Current()
On Error GoTo Err_Form_Current
If (Me![PointerLink].Value <> "") Then
    Me![WebBrowser8].Navigate Me![PointerLink].Value
    Me![WebBrowser8].Visible = True
Else
    Me![WebBrowser8].Visible = False
End If
Me![ManText].SetFocus
Exit_Form_Current:
    Exit Sub
Err_Form_Current:
    MsgBox Err.Description
    Resume Exit_Form_Current
End Sub
Das klappt ja alles auch. Das Problem ist nur man kann in Access die Datensätze mittels dem Scrollrad einer Maus wechseln. Wenn ich nun bis zum erstelen Artikel mit Bild komme wird das Webbrowser-Controll sichtbar und das Bild wird angezeigt. Leider kann ich nun nicht mehr mit dem Mausrad die Artikel durchscrollen. Dies klappt erst wieder wenn iih irgendo auf das Formular klicke. Deshalb habe ich gedacht es liegt am Focus und wollte den Focus auf irgendein Textfeld legen (ManText). Das klappt aber nicht. Komisch ist auch das das Scrollen nur nicht funktioniert wenn das Webbrowser-Controll von unsichtbar auf sichtbar schaltet. Klick ich danach auf das Formular kann ich wieder scrollen und die Bilder wechseln. Ich kann solange Scrollen bis das Controll wieder unsichtbar und dann wieder sichtbar wird. Ich habe es auch schon mit den API Document_complete und Navigate_complete für das Webbrwoser-Controll versucht und in diesen den Focus auf das Textfeld gelegt. AUch ohne Erfolg. Es kommt auch keine Fehlermeldung im Debugger wird die zeile mit Me![Mantext].setfocus auch erreicht. Nur nciht ausgeführt. Kann mir jemand helfen?
 
Zurück