Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas con el recordset

Estas en el tema de Problemas con el recordset en el foro de Visual Basic clásico en Foros del Web. Hola a todos, tengo un pequeño problema con el recordset. Tengo una tabla de clientes en la cual la clave primaria es el código de ...
  #1 (permalink)  
Antiguo 09/03/2009, 12:28
Avatar de nadal83  
Fecha de Ingreso: abril-2005
Mensajes: 7
Antigüedad: 19 años
Puntos: 0
Problemas con el recordset

Hola a todos, tengo un pequeño problema con el recordset.

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:
'''''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
Espero haberme explicado bien. Y muchas gracias por haber leido el mensage.
  #2 (permalink)  
Antiguo 09/03/2009, 12:40
Avatar de totigo  
Fecha de Ingreso: marzo-2007
Ubicación: America
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Problemas con el recordset

Coloca un ORDER BY en la clausula SQL,

SELECT * FROM CLIENTES ORDER BY CODIGO_CLIENTE
  #3 (permalink)  
Antiguo 09/03/2009, 15:23
Avatar de nadal83  
Fecha de Ingreso: abril-2005
Mensajes: 7
Antigüedad: 19 años
Puntos: 0
Respuesta: Problemas con el recordset

Cita:
Iniciado por totigo Ver Mensaje
Coloca un ORDER BY en la clausula SQL,

SELECT * FROM CLIENTES ORDER BY CODIGO_CLIENTE
Muchas gracias por solucionar mi problema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:56.