Tabular Form - Move Cursor Down

Z

Zee

I've created a tabular form in Access 2007. I would like the cursor to move
down the column I'm currently in when I either click on the enter key or down
arrow; similiar to what you can do in datasheet form.

Is there a way to do this?
 
T

Tom van Stiphout

On Tue, 20 Apr 2010 19:41:01 -0700, Zee

That's pretty straightforward. I created a ContinuousForm based on the
Customers table in the Northwind sample app, and added the following:

Private Sub ID_KeyDown(KeyCode As Integer, Shift As Integer)
HandleKeyDown Me.ID, KeyCode, Shift
End Sub

Private Sub Company_KeyDown(KeyCode As Integer, Shift As Integer)
HandleKeyDown Me.Company, KeyCode, Shift
End Sub

Private Sub HandleKeyDown(ctl As Control, KeyCode As Integer, Shift As
Integer)
If KeyCode = vbKeyUp And Shift = 0 Then
RunCommand acCmdRecordsGoToPrevious
ctl.SetFocus
ElseIf KeyCode = vbKeyDown And Shift = 0 Then
RunCommand acCmdRecordsGoToNext
ctl.SetFocus
End If
End Sub

So for the ID and Company controls I'm handling KeyDown event and
calling my private HandleKeyDown procedure. In it, I am testing for
the KeyUp and KeyDown keycodes signifying CursorUp and CursorDown, and
I am checking that no shift, control, or alt key was down at the same
time. Then I simply move to the previous or next record, and set focus
to my control.
I leave up to you to handle possible errors trying to move up from the
first row or down from the last row.

-Tom.
Microsoft Access MVP
 
Z

Zee

Tom,
Thank you so much for your help.

Tom van Stiphout said:
On Tue, 20 Apr 2010 19:41:01 -0700, Zee

That's pretty straightforward. I created a ContinuousForm based on the
Customers table in the Northwind sample app, and added the following:

Private Sub ID_KeyDown(KeyCode As Integer, Shift As Integer)
HandleKeyDown Me.ID, KeyCode, Shift
End Sub

Private Sub Company_KeyDown(KeyCode As Integer, Shift As Integer)
HandleKeyDown Me.Company, KeyCode, Shift
End Sub

Private Sub HandleKeyDown(ctl As Control, KeyCode As Integer, Shift As
Integer)
If KeyCode = vbKeyUp And Shift = 0 Then
RunCommand acCmdRecordsGoToPrevious
ctl.SetFocus
ElseIf KeyCode = vbKeyDown And Shift = 0 Then
RunCommand acCmdRecordsGoToNext
ctl.SetFocus
End If
End Sub

So for the ID and Company controls I'm handling KeyDown event and
calling my private HandleKeyDown procedure. In it, I am testing for
the KeyUp and KeyDown keycodes signifying CursorUp and CursorDown, and
I am checking that no shift, control, or alt key was down at the same
time. Then I simply move to the previous or next record, and set focus
to my control.
I leave up to you to handle possible errors trying to move up from the
first row or down from the last row.

-Tom.
Microsoft Access MVP


.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top