Next button don't go to addnew

H

hikaru

Hi all,

i want my Next button to go next if there is a record next. However, if
reached last record and user clicked Next, it should not go next any further
but shows a msg "your viewing the last record!"

can someone tell me how to do so?

your help is appreciated
 
A

Arvin Meyer [MVP]

Post the code you are using for your Next button and we can add the
appropriate code to help. If you are using the built in navigation buttons,
you cannot customize them and will need to turn them off and write your own
code.
 
H

hikaru

to Mr. Arvin Meyer:
thanks for your reply, and yes I am using the built in navigation buttons
and tried to add my own.. but for the following code, recreated the Next
button without using the built in navigation buttons:private Sub Edit_Next_Click()

Dim rst As DAO.Recordset

If Not rst.EOF Then
MsgBox "ddd"
'Exit Sub
'''''''Do While Not rst.EOF
'DoCmd.GoToRecord , , acNext
Else
DoCmd.GoToRecord , , acNext
'If rs.EOF Then
' MsgBox "ddd"
' Exit Sub
End If
'End If
''''''' rst.MoveNext
'''''''Loop

'Exit_Go_Next_Click:
' Exit Sub

' DoCmd.GoToRecord , , acNext
End Subshould I still remove all other built in navigation buttons like the "go
previous" button and so on?

,,,,,,,,,,,,,,,,,,,
to Mr. Evi:
thanks for your help, but I want the form to allow addition ^^
 
A

Arvin Meyer [MVP]

Yep, dump them all and replace them with your own code. Here's what I use:

Private Sub cmdFirstRecord_Click()
On Error GoTo Err_cmdFirstRecord_Click

DoCmd.GoToRecord , , acFirst

Exit_cmdFirstRecord_Click:
Exit Sub

Err_cmdFirstRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdFirstRecord_Click

End Sub

Private Sub cmdPreviousRecord_Click()
On Error GoTo Err_cmdPreviousRecord_Click

DoCmd.GoToRecord , , acPrevious

Exit_cmdPreviousRecord_Click:
Exit Sub

Err_cmdPreviousRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdPreviousRecord_Click

End Sub

Private Sub cmdNextRecord_Click()
On Error GoTo Err_cmdNextRecord_Click

DoCmd.GoToRecord , , acNext

Exit_cmdNextRecord_Click:
Exit Sub

Err_cmdNextRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdNextRecord_Click

End Sub
Private Sub cmdLastRecord_Click()
On Error GoTo Err_cmdLastRecord_Click

DoCmd.GoToRecord , , acLast

Exit_cmdLastRecord_Click:
Exit Sub

Err_cmdLastRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdLastRecord_Click

End Sub

Private Sub cmdNew_Click()
On Error GoTo Err_cmdNew_Click

DoCmd.GoToRecord , , acNewRec

Exit_cmdNew_Click:
Exit Sub

Err_cmdNew_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdNew_Click

End Sub

For the record n of n I use:

=IIf([NewRecord],"New Record","Contract " & [CurrentRecord] & " of " &
Count(*))
 
H

hikaru

the next button still goes to next record (to addnew "empty form") if I was
in the last record!.. I think I should put some codes within the Next button
code to stop going next if reached final record.. but I don't know how to do
so!

Arvin Meyer said:
Yep, dump them all and replace them with your own code. Here's what I use:

Private Sub cmdFirstRecord_Click()
On Error GoTo Err_cmdFirstRecord_Click

DoCmd.GoToRecord , , acFirst

Exit_cmdFirstRecord_Click:
Exit Sub

Err_cmdFirstRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdFirstRecord_Click

End Sub

Private Sub cmdPreviousRecord_Click()
On Error GoTo Err_cmdPreviousRecord_Click

DoCmd.GoToRecord , , acPrevious

Exit_cmdPreviousRecord_Click:
Exit Sub

Err_cmdPreviousRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdPreviousRecord_Click

End Sub

Private Sub cmdNextRecord_Click()
On Error GoTo Err_cmdNextRecord_Click

DoCmd.GoToRecord , , acNext

Exit_cmdNextRecord_Click:
Exit Sub

Err_cmdNextRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdNextRecord_Click

End Sub
Private Sub cmdLastRecord_Click()
On Error GoTo Err_cmdLastRecord_Click

DoCmd.GoToRecord , , acLast

Exit_cmdLastRecord_Click:
Exit Sub

Err_cmdLastRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdLastRecord_Click

End Sub

Private Sub cmdNew_Click()
On Error GoTo Err_cmdNew_Click

DoCmd.GoToRecord , , acNewRec

Exit_cmdNew_Click:
Exit Sub

Err_cmdNew_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdNew_Click

End Sub

For the record n of n I use:

=IIf([NewRecord],"New Record","Contract " & [CurrentRecord] & " of " &
Count(*))
--
Arvin Meyer, MCP, MVP
http://www.datastrat.com
http://www.mvps.org/access
http://www.accessmvp.com

hikaru said:
to Mr. Arvin Meyer:
thanks for your reply, and yes I am using the built in navigation buttons
and tried to add my own.. but for the following code, recreated the Next
button without using the built in navigation buttons:
Private Sub Edit_Next_Click()

Dim rst As DAO.Recordset

If Not rst.EOF Then
MsgBox "ddd"
'Exit Sub
'''''''Do While Not rst.EOF
'DoCmd.GoToRecord , , acNext
Else
DoCmd.GoToRecord , , acNext
'If rs.EOF Then
' MsgBox "ddd"
' Exit Sub
End If
'End If
''''''' rst.MoveNext
'''''''Loop

'Exit_Go_Next_Click:
' Exit Sub

' DoCmd.GoToRecord , , acNext
End Sub
should I still remove all other built in navigation buttons like the "go
previous" button and so on?

,,,,,,,,,,,,,,,,,,,
to Mr. Evi:
thanks for your help, but I want the form to allow addition ^^
 
H

hikaru

sovled, thanks for your help and time^^

Private Sub cmdNextRecord_Click()
On Error GoTo Err_cmdNextRecord_Click

Dim contCount As Integer

contCount = DCount("Cont_Monthly_No", "Tbl_Cont_Monthly_Change")

If CurrentRecord = contCount Then
MsgBox "You are viewing the last record!"
Else
DoCmd.GoToRecord , , acNext
End If

Exit_cmdNextRecord_Click:
Exit Sub

Debug.Print contCount

Err_cmdNextRecord_Click:
MsgBox Err.Description, vbInformation, "MyApp"
Resume Exit_cmdNextRecord_Click

End Sub
 
H

hikaru

sorry, actually the previous solution i posted does not seem to work now, so
i changed it to this which is working fine now, i'm posting it just so that
someone might get benifit from it.

Private Sub cmdNextRecord_Click()
On Error GoTo Err_cmdNextRecord_Click

''''Dim contCount As Integer

''''contCount = DCount("Cont_Monthly_No", "Tbl_Cont_Monthly_Change")

If CurrentRecord = Me.CountRecordss Then
MsgBox "You are viewing the last record!", vbInformation, "Invalid Move"
Else
DoCmd.GoToRecord , , acNext
End If

Exit_cmdNextRecord_Click:
Exit Sub

Debug.Print contCount

Err_cmdNextRecord_Click:
MsgBox Err.Description, vbInformation, "Invalid Move"
Resume Exit_cmdNextRecord_Click

End Sub


(Me.CountRecordss) is an unbound text to count number of contracts in the
table/query/filtered.
 
A

Arvin Meyer [MVP]

hikaru said:
sorry, actually the previous solution i posted does not seem to work now,
so
i changed it to this which is working fine now, i'm posting it just so
that
someone might get benifit from it.

You might also try:

If not Me.RecordsetClone.EOF Then
 

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