MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 23.10.2003, 22:02   #1
Hausdrache
MOF User
MOF User
Standard Keypress Problematik

Folgendes Problem:

Ich habe ein Haupt- und auf diesem ein Unterformular.
Per Button-Klick (VBA-Code) wird
1.) eine Abfrage ausgeführt und die Daten im Unterformular dargestellt (Endlosformular)
2.) das Unterformular erhält den Focus
3.) ein Textfeld des Unterformulars erhält den Focus (laut Onlinehilfe soll man das so trennen?!)

so weit so gut. Nach Button-Klick wird die Abfrage ausgeführt, das Unterformular aktualisiert und der Cursor steht auf dem obersten Textfeld.

Nun soll bei Bedarf bei Ereignis Keypress ein weiteres Formular (Frm_2) aktualisiert werden, welches auf dem Textfeld basiert, welches den Focus hatte:

Sub Form_Keypress (Keyascii as Interger)

IF Keyascii = 13 then

.......

End IF

End Sub

Das entsprechende Formular (frm_2) wird auch aktualisiert, jedoch auf Basis des Textfeldes, welches unter dem Textfeld stand, welches des Focus hatte, also auf Basis des nächstfolgenden Datensatzes. (als ob der Focus erst einen Datensatz weiterspringt und dann die Aktualisierung ausführt)


Wer hatte bereits ein ähnliches Problem und kann mir weiterhelfen?

PS: habe es auch schon mit Keydown, Tastenvorschau JA/NEIN, .. probiert.

Vielen Dank - der Hausdrachen
Hausdrache ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.10.2003, 05:35   #2
Johnny Loser
MOF Meister
MOF Meister
Standard

Zitat:

...welches auf dem Textfeld basiert, welches den Focus hatte:

Wo befindet sich der Focus denn nach Betätigen der Eingabetaste?

Code:

IF Keyascii = 13 then

.......

End IF
Wofür steht "......."? Die Abbildung des gesamten Codes würde uns die Beantwortung Deiner Frage möglicherweise erleichtern...

Zitat:

...als ob der Focus erst einen Datensatz weiterspringt...

Ich gehe mal davon aus, das tut er auch...

"Form_KeyPress" des Hauptformulars oder Unterformulars?

Welcher Datensatz ist denn aktiv, im Moment, daß die Aktualisierung ausgeführt wird?
Setze doch mal einen Haltepunkt in die erste Zeile Deiner Prozedur und verfolge im Debugger per Einzelschritt, wie der Focus wandert und laß Dir die Werte, die Deiner Abfrage übergeben werden mit Debug.Print im Direktfenster ausgeben.

__________________

Johnny Loser

Wer lesen kann, ist klar im Vorteil!

Windows XP / 7, Access 2.0 / 97 / 2000, Office 97 / 2000 / 2007, VB 6 .............
P.S.: Helfen macht um so mehr Spaß, wenn man ein Feedback bekommt, auch wenn's mal nicht geholfen hat
Ich beantworte keine PN oder email-Anfragen, die ins Forum gehören!
Johnny Loser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.10.2003, 06:33   #3
Paul.Ostermeier
MOF Koryphäe
MOF Koryphäe
Standard

probier's mal so..

Sub Form_Keypress (Keyascii as Interger)

IF Keyascii = 13 then
KeyAscii = 0
.......

End IF

End Sub

Das Argument KeyAscii wird als Referenz übergeben. Wird dieses Argument geändert, wird ein anderes Zeichen an das Objekt gesendet. Bei Verwendung des Wertes 0 für KeyAscii wird der Tastenanschlag annulliert, so dass das Objekt nicht erkennt, dass eine Taste gedrückt wurde.
Paul.Ostermeier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.10.2003, 22:19   #4
Hausdrache
Threadstarter Threadstarter
MOF User
MOF User
Standard

Sorry, dass ich jetzt erst antworte, aber ich komme am Tag meist nicht an den Rechner.

Ich habe selbst noch etwas probiert:

Statt
"IF Keyascii = 13 then"
habe ich
"IF Keyascii = 32 then"
verwendet, also statt der Entertaste die Leertaste. Und damit läuft es so, wie ich es mir gedacht habe. Damit will ich nicht sagen, dass programmiermässig sauber ausschaut.

Ich kann es mir nur so erklären, dass der Code für ENTER den Focus einen Datensatz weiterrückenlässt und diesen diesen dann als Basis für die Abfrage nimmt. Wohingegen der Code für LEERTASTE genau den Datensatz nimmt, auf welchem der Focus lag.
Hausdrache ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.