Warum ist meine .setfocus ignoriert?

Ich habe ein Access-Formular mit einem Textfeld, das dazu bestimmt ist, zu ermöglichen, wiederholt Sie eine Zahl eingeben, drücken Sie enter, und lassen ein script Zeugs. Für die Geschwindigkeit, das Feld zu halten, sollten Sie den Fokus nach DoStuff() ist getan.

Aber während ich bin sicher, dass DoStuff() ausgeführt, der Fokus geht immer zum nächsten Feld in der tab-Reihenfolge. Es ist wie Me.MyFld.SetFocus ignoriert wird.

Wie behalte ich den Fokus auf diesem Gebiet nach DoStuff() gemacht wird?

Private Sub MyFld_KeyDown(KeyCode As Integer, Shift As Integer)  
     If KeyCode = vbKeyReturn Then  
         DoStuff  
         Me.MyFld.SetFocus  
     End If
End Sub
  • versuchen Sie, mehr geeignete Ereignis AfterUpdate der textbox
  • Haben Sie versucht, schrittweise mit dem debugger, um zu sehen, wenn nichts anderes ausgeführt wird, nach Ihrem SetFocus Methode?
  • wenn ich ein anderes Ereignis, wie weiß ich, ob der aktuelle Tastendruck der enter-Taste? AfterUpdate sind nicht enthalten, und OnKeyPress ist für normale Zeichen, nicht die enter-Taste (oder so, hab ich gelesen)
  • Das ist eine gute Idee. Nach .SetFocus, es geht nur um End if, dann End Sub - und das ist es.
InformationsquelleAutor PowerUser | 2013-09-24
Schreibe einen Kommentar