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

Error en tiempo de ejecución

Estas en el tema de Error en tiempo de ejecución en el foro de Visual Basic clásico en Foros del Web. Hola aquí les envío mi pregunta, de antemano gracias: Cuando elimino un registro usando la instrucción sql, lo hace pero luego yo hago un llamado ...
  #1 (permalink)  
Antiguo 14/07/2005, 11:12
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Información Error en tiempo de ejecución

Hola aquí les envío mi pregunta, de antemano gracias:
Cuando elimino un registro usando la instrucción sql, lo hace pero luego yo hago un llamado al procedimiento LlenarCampos y es allí cuando ocurre el siguiente error:

Error en tiempo de ejecución. El registro está eliminado.
y se ubica en el primer campo del procedimiento LlenarCampos:
nombre.Text = datos.Fields("nombre")

También tengo cuatro botones de control: que recorren entre el primer registro, el anterior, el siguiente y el último registro.

Les envío el código:

Private Sub btneliminar_Click()
Dim sql As String

MsgBox "Está seguro de eliminar???"
If datos.BOF And datos.EOF Then
MsgBox "base de datos vacía", vbInformation
Else
sql = "DELETE * FROM gentio WHERE cedula like '" & cedula & "'"
conexion.Execute (sql)
blanquear
datos.MoveFirst
MsgBox "El registro fue eliminado", 64
LlenarCampos
End If
End Sub


Sub LlenarCampos()
If datos.BOF And datos.EOF Then
MsgBox "base de datos vacía", vbInformation
Else
nombre.Text = datos.Fields("nombre")
cedula.Text = datos.Fields("cedula")
ciudad.Text = datos.Fields("ciudad")
End If
End Sub

Les envío el código del botón de control siguiente:

Private Sub btnsiguiente_Click()
If datos.BOF And datos.EOF Then
MsgBox "la base de datos está vacía", vbInformation
Else
datos.MoveNext
If datos.EOF Then
datos.MoveLast
Beep
MsgBox "Último Registro", vbCritical, "Último Registro"
Else
LlenarCampos
End If
End If
End Sub
  #2 (permalink)  
Antiguo 15/07/2005, 01:01
 
Fecha de Ingreso: mayo-2005
Mensajes: 93
Antigüedad: 19 años
Puntos: 1
No estoy muy seguro, pero creo que deberías volver a definir el recordset que utilizas, ya que contiene datos que se han borrado en la instrucción SQL que ejecutas, con lo que el recordset intenta acceder a unos datos que ya stán borrados.

sql = "DELETE * FROM gentio WHERE cedula like '" & cedula & "'"
conexion.Execute (sql)
blanquear
datos.MoveFirst


Por tanto, si el recordset está relacionado con la conexion, antes de hacer el movefirst, deberías refrescarlo

sql = "DELETE * FROM gentio WHERE cedula like '" & cedula & "'"
conexion.Execute (sql)
blanquear
datos.refresh
datos.MoveFirst


Prueba esto y ya me diras si es así.

gurgur
__________________
No te hubieran dado la capacidad de soñar sin darte también la posibilidad de convertir tus sueños en realidad
  #3 (permalink)  
Antiguo 16/07/2005, 10:11
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Gracias por tu mensaje, sabes escribí lo que me dijistes datos.Refresh y me retorna error de compilación: No se encontró el método o el miembro de datos. También escribí datos.Update y me dá error. Cuál otro método me podrá servir para refrescar la tabla???.
Gracias mil.
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 04:53.