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

Movimiento por registros Mysql

Estas en el tema de Movimiento por registros Mysql en el foro de Visual Basic clásico en Foros del Web. Muy buenas, llegué a este foro buceando a través del siempre maravilloso google. Tengo un problema, estoy haciendo una aplicacion para consulta/edición de una base ...
  #1 (permalink)  
Antiguo 20/08/2007, 11:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Movimiento por registros Mysql

Muy buenas, llegué a este foro buceando a través del siempre maravilloso google. Tengo un problema, estoy haciendo una aplicacion para consulta/edición de una base de datos de mi trabajo, accedo a los datos (de momento como estoy en pruebas solo hay dos registros, pero con eso debería valer) y me muevo bién hacia adelante, pero no consigo moverme hacia atrás. Voy a poner tozos de código para aclarar ésto un poco:


Código:
Private Sub Form_Load()
'************************************
' Cargamos los datos del formulario
'************************************

Set rt = New ADODB.Recordset
rt.ActiveConnection = con
rt.CursorType = adOpenStatic
rt.LockType = adLockOptimistic

rt.Open "select * from operadores order by login", , , , adCmdText

'Mostramos el primer Operador
MostrarOperador 'esta funcion rellena las cajas de texto del formulario
'con los datos de las columnas de la tabla

Previamente he hecho esto:
Set con = New ADODB.Connection
con.CommandTimeout = 40
con.CursorLocation = 1
con.ConnectionString = "server=" & cServidor & ";dsn=formacion112;uid=TRAIN;pwd=TRAIN;DATABASE=formacion112"
con.Open
Al abrir el formulario me aparecen los datos del primer registro, y si pincho en mi botón "siguiente" (hace un rt.MoveNext) voy al siguiente registro; pero si pincho en el "anterior" (estoy haciendo un rt.MovePrevious) no hace nada.

No sé por qué pasa, pero necesito moverme hacia atrás. Cuando esto mismo lo hacía en Access no tuve problema ninguno.

Muchas gracias por adelantado

Última edición por MoN112; 20/08/2007 a las 11:11 Razón: Añado información
  #2 (permalink)  
Antiguo 22/08/2007, 00:32
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Movimiento por registros Mysql

Hola

Como haces para relacionar el recordset con las cajas de texto?, es decir, si te funciona el MoveNext no veo la razón para que no te funcione el MovePrevious, puede ser que el error esté cuando intentas mostrar los datos en los ciadros de texto. Puedes añadir el código de los botones y de la función que utilizas para mostrar los registros en las cajas de texto?

--Saludos--
  #3 (permalink)  
Antiguo 22/08/2007, 12:20
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Movimiento por registros Mysql

Para mostrar los datos en las cajas de texto uso este método:
Código:
Private Sub MostrarOperador()
'******************************************
' Muestra el contenido del registro actual
'******************************************

Dim i As Integer

On Error Resume Next

'Vaciamos los campos
For i = 0 To 6
    txtOper(i) = ""
Next

'Comprobamos si nos hemos movido a un registro existente
If (Not rt.EOF) And (Not rt.BOF) Then
    txtOper(0) = rt.Fields("login")
    txtOper(1) = rt.Fields("nombre")
    txtOper(2) = rt.Fields("apellido1")
    txtOper(3) = rt.Fields("apellido2")
    txtOper(4) = rt.Fields("grupo")
    txtOper(5) = rt.Fields("fec_alta")
    txtOper(6) = rt.Fields("fec_baja")
End If

End Sub
Y en la matriz de botones de movimiento por los registros:
Código:
Private Sub cmdReg_Click(Index As Integer)
'****************************************
' Matriz de movimiento por los registros
'****************************************

On Error Resume Next

Select Case Index
    Case cPrimero
        rt.MoveFirst
    Case cAnterior
        rt.MovePrevious
    Case cSiguiente
        rt.MoveNext
    Case cUltimo
        rt.MoveLast
End Select

'Y mostramos el registro
MostrarOperador

End Sub
Normalmente compruebo antes de mover el registro si se puede mover, pero he hecho tantos cambios al codigo para pruebas, que ya lo arreglare cuando pueda moverme atras.
  #4 (permalink)  
Antiguo 23/08/2007, 00:56
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Movimiento por registros Mysql

Hola

Pues sigo sin ver el error!, has intentado con la depuración paso a paso para ver donde esta el error? o para ver si es porque no entra en algún If o en el select case, ...

De todas formas si quieres mándame el código por email por si lo veo mejor, te dejo mi email por MP.

--Saludos--
  #5 (permalink)  
Antiguo 19/09/2007, 05:04
 
Fecha de Ingreso: agosto-2007
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Movimiento por registros Mysql

Muchas gracias Insomnia, pero al final dí con el error, era que no estaba usando el conector ODBC apropiado. Finalmente usé mysql-connector-odbc-3.51.20-win32 y al crear el DNS de sistema al inicio del programa lo hice con éste último que me apareció en la lista. Así sí que me permite el movimiento por registros hacia atrás (el MovePrevious).

Aún así, agradezco mucho la ayuda prestada.

Salu2
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 02:28.