Tengo una tabla de clientes en la cual la clave primaria es el código de cliente (un entero). Al agregar un cliente hago un moveLast y cojo el código de cliente y le sumo 1, y luego lo guardo.
Siempre se ha guardado bien:
First___________Last
1 2 3 4 ..... 50 51 52
Hasta que a partir de ahora sin haber modificado el código me lo muestra así:
First______________________Last
70 71 72 1 2 3 4 ..... 66 67 68 69
Y cuando hago el moveLast para coger el último código de cliente, me lo mueve al 69 i coge ese código, de esta manera el nuevo cliente tiene el código 70 i me da error al tener la clave primaria repetida.
Aquí les dejo el código de nuevo cliente y el de guardar.
Código:
'''''NOU Private Sub Nou() On Error GoTo errors Dim ultimCodi As Long HabilitarCaixes InhabilitarToolbar InhabilitarBotons Me.Toolbar1.Buttons(7).Enabled = True 'guardar Me.Toolbar1.Buttons(8).Enabled = True 'cancelar Me.adoClients.Recordset.MoveLast ultimCodi = Me.txtCodi Me.adoClients.Recordset.AddNew Me.txtCodi = ultimCodi + 1 Me.txtNom.SetFocus eixir: Exit Sub errors: MsgBox Err & " - " & Err.Description Me.adoClients.Recordset.CancelUpdate Resume eixir End Sub
Código:
Espero haberme explicado bien. Y muchas gracias por haber leido el mensage. '''''GUARDAR Private Sub Guardar() On Error GoTo errors If Me.txtNom <> "" Then Me.adoClients.Recordset.Update End If activar_botons: InhabilitarCaixes HabilitarToolbar HabilitarBotons Toolbar1.Buttons(7).Enabled = False 'guardar Toolbar1.Buttons(8).Enabled = False 'cancelar If Me.txtNom = "" Then MsgBox "Has de plenar el Camp del Nom Obligatoriament", vbInformation, "Error" Cancelar Nou End If Me.adoClients.Recordset.Requery eixir: Exit Sub errors: If MsgBox(Err.Description, vbCritical + vbRetryCancel, "Error") = vbCancel Then Me.adoClients.Recordset.CancelUpdate Resume activar_botons Else Me.txtNom.SetFocus Resume eixir End If End Sub