Niklas,
Every Access control (as far as i know) has a KeyPress event. The forms
actually have a KeyPreview property which will in turn send the keypress to
the KeyPress of a form no matter what control has the focus at the time of
the user pressing enter. For example:
You have a form named frmTest. This has a textbox on it named txtMyTextBox
and a ComboBox named cboMyCombo. If you had programed the KeyPress event for
the textbox only then the code would look like:
Private Sub txtMyTextBox_KeyPress(KeyAscii As Integer)
If vbKeyReturn Then
docmd.OpenForm "frmPerson",,,"[PersonID]=" & intPersonID
end if
End Sub
The code above would run evertime the user pressed *any* key in the textbox.
Your code checks and only acts if the Return key has been pressed. If you
put the same procedure in the forms KeyPress event (KeyPreview has to be set
to yes for this to work as the form doesnt receive the focus unless there
are no controls on it - not much use then
).
Private Sub Form_KeyPress(KeyAscii As Integer)
If vbKeyReturn Then
docmd.OpenForm "frmPerson",,,"[PersonID]=" & intPersonID
end if
End Sub
The code above would run evertime any key was pressed in any control on the
form. Again, the form would only open if it was the Return key that had been
pressed.
Hopefully, using the above information, you can now work out where you need
to place the code and in which controls (if any) to get the desired effect
you are after.
HTH,
Neil.
Niklas Östergren said:
Hmm!
I havn´t tryed it out but I was to curious to wait untill late evening!
I don´t know if I have missunderstod your reply but the DoCmd.OpenForm
works. What I don´t get is how to fire the code when <Enter / Return>
key
is
pressed. That´s my Q!
TIA
// Niklas
Albert D. Kallal said:
I guess it depends on where your current cursor is..or what is currently
displayed on the screen.
But yes..it is a great idea to enable the Enter key to open up a form based
on the current details.
If you look at he following screen shots....I always enable the cursor when
the user hits enter.
http://www.attcanada.net/~kallal.msn/Articles/Grid.htm
The code use is:
Private Sub MNr_KeyPress(KeyAscii As Integer)
If vbKeyReturn Then
docmd.OpenForm "frmPerson",,,"[PersonID]=" & intPersonID
end if
End Sub
of course, the above assumes a key id of personID. Often, the key id is
"id"..so you would use:
docmd.OpenForm "frmPerson",,,"id = " & me.ID
Here is some screen shots where I use the above idea..and again enter key
opens up the form...
http://www.attcanada.net/~kallal.msn/Search/index.html
--
Albert D. Kallal (MVP)
Edmonton, Alberta Canada
(e-mail address removed)
http://www.attcanada.net/~kallal.msn