Veröffentlicht 6. Februar 200322 j Hallo, wie kann ich per VBA unter Access feststellen, ob ein Steuerelement den Fokus hat? Gruß JayN
6. Februar 200322 j mit .setfocus() kann man nen Fokus setzen. mit .gotfocus() kann man Ereignisse aufrufen, wenn Steuerelement Fokus erhält. mit .lostfocus() kann man Ereignisse aufrufen, wenn Steuerelement Fokus verliert. Problem: Falls die Abfrage nach dem Klicken auf einen Button erfolgt, ist der Fokus schon beim Button. Falls der Fokus verschoben werden muß, um Felder z. B. zu deaktivieren, einfach einem Steuerelement, welches Aktiv bleibt den Fokus zuschicken (.setfocus()). Dieses Steuerelement kann auch die Größe 0 haben, ist somit nicht auf dem Formular zu erkennen.
6. Februar 200322 j Das Problem sieht folgender Maßen aus: Ich habe ein Formular, welches mehrere Textfelder besitzt. Beim Verlassen eines bestimmten Feldes soll eine Prozedur ausgeführt werden, aber nur wenn es in eine bestimmte Richtung (soll heißen: zu einem bestimmten anderen Textfeld hin) verlassen wird. Deswegen möchte ich prüfen, ob dieses zweite Textfeld den Fokus erhalten hat. Gruß JayN
6. Februar 200322 j Probiers mal mit der eigenschaft checked Bsp: [Auszug] If CheckBox(i).Checked = True Then blablabla End If
6. Februar 200322 j Vorschlag : Nichtsichtbares Textfeld (als Quelle). Bekommt ja, wenn fokus vom ersten Steuerelement verschwindet: sub ErstesTextfeld.lostfocus() textfeld.caption="ja" endsub beim zweiten Steuerelement : sub ZweitesTextfeld.gotfocus if textfeld.caption="ja" then blablabla endif endsub blablabla wird nur gemacht, wenn Quelle des erste Steuerelement und Ziel das zweite Steuerelement war.
6. Februar 200322 j Ok, so kann man das Problem wirklich umgehen. Danke. Aber so eine Funktion, die zurückgibt, welches Element den Fokus hat, wäre trotzdem nicht schlecht. Braucht man immer wieder. Das Problem ist jetzt gelöst. Danke. Gruß JayN
6. Februar 200322 j Man muss nur an der richtigen Stelle suchen: Access 97 Online-Hilfe: Sie können die Eigenschaft ActiveControl zusammen mit dem Screen-Objekt verwenden, um das Steuerelement zu kennzeichnen oder auf das Steuerelement zu verweisen, das den Fokus besitzt. Also: MsgBox Screen.ActiveControl.Name
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.