Error en tiempo de ejecución en una sentencia desarrollada en Visual Basic

La siguiente sentencia esta desarrollada en visual Basic 6 y cuando se ejecuta me aparece el siguiente cartel:
Error'3021' en tiempo de ejecución:
El valor de BOF o EOF es true, o el actual registro se elimino, la operación solicitada requiere un registro actual.
Esta es la sentencia
'Abre la conexión.
StrCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDeDatos.mdb;Persist Security Info=False"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Rst.CursorType = adOpenStatic
Rst.LockType = adLockBatchOptimistic
'Controla que todos los campos este llenos para proceder a la eliminacion
If  Text1.Text = "" And Text2.Text = "" And MaskEdBox1.Text = "__/__/____" And Text4.Text = "" And Text5.Text = "" Then
    MsgBox "Debe Seleccionar una Registro a Eliminar!!!", vbInformation +  vbOKOnly"
   If vbOK Then
     DataGrid1.SetFocus
     Exit Sub
   End If
Else
 Rst.Open "SELECT * FROM Tabla  WHERE Cod1 = '" & CMod & "'" and Cod2 = " & C2Mod & " and Fecha = #" & FEMod & "#", StrCnn, , , adCmdText
   'Pregunta por las dudas que no este seguro de eliminar  
 SMS = MsgBox("Esta seguro de Eliminar este Registro!!!!", vbExclamation + vbYesNo)
 If SMS = 6 Then   'Elimina el Registro
  Rst.Delete
  Rst.UpdateBatch
  Rst.Requery
  Rst.Close
  Limpiar  'Limpia las Campos de la Modificación
  Actualizar_Grilla
 End If
End If
La verdad no se que estoy haciendo mal y lo miro y lo miro y no me doy cuenta por ahí si lo ves vos enseguida te vas a dar cuenta pero yo estoy como enceguecido :-) y no me doy cuenta ...

2 Respuestas

Respuesta
1
Puede ser porque tu rst solo contiene un registro, el cual borras con lo que el uodatebatch y el requery se están haciendo en vacío, o porque en el actualizar grilla estas usando el mismo rst y lo tienes vacío...
Si lo sigues con debug y ves en que linea arroja el error podremos afinar más la respuesta
Lo hice y el error me salta en esta sentencia, pero si llegaras a tener alguna manera más sencilla de hacer una eliminación en un registro te lo agradecería que me la pases porque esta me parece media complicada o por lo menos me parece poco segura...
Rst.Open "SELECT * FROM Tabla  WHERE Cod1 = '" & CMod & "'" and Cod2 = " & C2Mod & " and Fecha = #" & FEMod & "#", StrCnn, , , adCmdText
Saludos
Si te da error en esa linea es porque tienes mal la instrucción "SELECT * FROM...
Tendrás algún lio con las comillas, etc.
Analiza esa instrucción sql con los valores que le llegan (al pararlo ahí con debugg) mira como traduce el compilador tu instrucción juntandola con los valores.
Respuesta
1
Amigo toy viendo parece no tener error, pero en la noche lo reviso detalladamente o si no t envío u ejemplo concreto ok, espero entiendas que ahora estoy ern el trabajo y estoy a full
Bueno dale gracias si te comprendo...
Saludos
Cn.ConnectionString = "File Name=C:\Documents and Settings\Programa2\BDPruebaRel.Mdb"
        Con. Open
        Rs. Open "Select * from Referencia", vcn, adOpenStatic, adLockOptimistic
        rs.Filter = "codReferencia = '" & registro & "' and Linea ='" & lin & "'"
        rs.Delete
        If Not rs.EOF Then
             rs.MoveNext
        Else
             rs.MoveLast
        End If
        Rs. Close
        Cn. Close
Espero te ayude amigo!
Si gustas lo trabajamos con Sql server store procedure y funciones en basic depende de ti amigp !
Ok, gracias por tu colaboración, te digo que por ahora voy a probar con lo que me pasaste y si no después vemos lo que me propusites ... desde ya gracias por tus molestias...
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas