Problema procedimiento move completed vb6

Estoy programando hace poco en vb 6 y cuando quiero moverme por el recordset con el procedimiento move completed me da este error:
La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre.
Ya que me quiero mover por un recordset con este código:
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByValpError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByValpRecordset As ADODB.Recordset)
'si estamos antes del principio del recordset
If rs.BOF = True Then
rs.MoveFirst 'movemos al principio del recordset
'si estamos despues del ultimo elemento del recordset
ElseIf rs.EOF = True Then
rs.MoveLast 'movemos al final del recordset
Else
'si se cambia el registro actual del recordset a otro
Text1. Text = rs. Fields("Nombre") 'ponemos el nombre del registro actual
Text2. Text = rs. Fields("Apellido") 'ponemos el apellido del registro actual
Text3. Text = rs. Fields("Telefono") 'ponemos el telefono del registro actual
Text4. Text = rs. Fields("Direccion") 'ponemos la direccion del registro actual
Text5. Text = rs. Fields("Correo") 'ponemos el correo del registro actual
End If
End Sub
Ya probé instalando los service pack de vb pero sigo con el mismo error, utilizo el Microsoft active datax 2.5 ya que nunca me había dado este tipo de errores
Desde ya gracias y espero respuesta ya que este error me esta imposibilitando seguir con mi aplicación.

1 respuesta

Respuesta
1
Para recorrer un recordset se usa MoveNext, MovePrevious, MoveFirst y MoveLast
No entiendo porque estas usando ese evento del recordset, pues al moverse hacia adelante con MoveNext, solo debes preguntar si el es EOF para saber si llegaste el a final del recordset.
Muchas gracias por tu pronta respuesta, elime el meto y trato de moverme por el recordset con el siguiente código:
Private Sub Primero_Click()
rs.MoveFirst
End Sub
Private Sub Anterior_Click()
'verificamos si no estamos antes del principio del recordset
If rs.BOF = False Then
rs.MovePrevious 'movemos al registro anterior
End If
End Sub
Private Sub Siguiente_Click()
'verificamos si n estamos despues del ultimo elemento del recorset
If rs.EOF = False Then
rs.MoveNext 'movemos al siguiente registro
End If
End Sub
Private Sub ultimo_Click()
rs.MoveLast
End Sub
Y al ejecutar el programa el mismo no avanza, me descarga el primer registro y no me deja moverme por el recordset al presionar los botones no se desplazan los registros y no me arroja ningún error pero queda en el primer registro.
Supongo que tienes más de 1 registro en el recordset y que después de llamar a los botones de movimiento llamas de alguna manera la rutina que carga los datos del recordset a los textbox y controles que tienes... ¿o me equivoco?
Si tengo más de un registro y si los llamo en el eveto load del formulario:
et rs = New ADODB.Recordset 'activamos el recordset
'abrimos la base de datos agenda.mdb
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = C:\agenda.mdb"
'especificamos la fuente de datos en tste caso la tabla Contactos
rs.Source = "Contactos"
rs.CursorType = adOpenKeyset 'definimos el tipo de cursor
rs.LockType = adLockOptimistic 'definimos el tipo de bloqueo
'abrimos el recordset y lo llenamos con una consulta sql
rs.Open "select * from Contactos", cn
rs.MoveFirst 'nos movemos al principio del recordset
'cargamos los datos en la caja de texto
Text1.Text = rs.Fields("Nombre")
Text2.Text = rs.Fields("Apellido")
Text3.Text = rs.Fields("Telefono")
Text4.Text = rs.Fields("Direccion")
Text5.Text = rs.Fields("Correo")
End Sub
Estoy trabando en código para moverme por el recordset y después lo haría para realizar modificaciones.
Por eso no entiendo porque se queda en el primer registro y no me permite desplazarme con los botones siguiente, ultimo.
En el tipo de cursor: sdOpenDynamic ya que este permite moverse en cualquier dirección del recordset, el que tu utilizas no recuerdo como se utiliza.
Lo otro que supongo es que con y rs están declarados como públicos o globales en algún sitio para poder usarlos desde cualquier punto del formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas