Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2010, 14:54
Avatar de chiper1
chiper1
 
Fecha de Ingreso: febrero-2010
Ubicación: Maracay, Venezuela
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 0
Error "3021" en tiempo de Ejecucion VB 6

Hola amigos q tal soy nuevo por aca. mi duda es la siguiente estoy haciendo mi TESIS y es sobre un sistema de compra y venta de mercacia. todo lo demas esta super bn mi problema es este. tengo un FORMULARIO q es de eliminar pedidos alli tengo un boton de eliminar todos los pedidos pero al hacer click en el me lanza este error:

Error "3021" en tiempo de Ejecucion : el valor de BOF O EOF es True, o el actual registro se elimino; la operacion solicitada requiere un registro actual.


A mi parecer es que el sistema sigue leyendo la base de datos pero como no encuentra nada te lo dice pero COMO hago para corregirlo eso me aparece al eliminar los reistros Ayuda por favor... Urgentee. aca les dejo el codigo para que vean donde me aparece el error!

Dim rs_F16_Solicitante As New ADODB.Recordset
Dim rs_F16_CAB As New ADODB.Recordset
Dim rs_F16_DET As New ADODB.Recordset

Dim RS1 As New ADODB.Recordset
Dim RS2 As New ADODB.Recordset

Dim TXT1 As String
Dim TXT2 As String

Friend Sub Command1_Click()

If rs_F16_CAB.State = 1 Then rs_F16_CAB.Close
If Me.Option1.Value = True Then
rs_F16_CAB.Open TXT1 + " and pedido.idPersonal='" + Me.DataCombo1.BoundText + "'", nc, adOpenStatic, adLockOptimistic
End If
If Me.Option2.Value = True Then
d1 = Trim(CStr(DateValue(Me.DTPicker1.Value)))
D2 = Trim(CStr(DateValue(Me.DTPicker2.Value)))

cq = " (PEDIDO.FECHA>=DATEVALUE('" & d1 & "') AND PEDIDO.FECHA<=DATEVALUE('" + D2 + "')) "
rs_F16_CAB.Open TXT1 + " and " + cq, nc, adOpenStatic, adLockOptimistic
End If

Set RS1 = CrearTMPCAB1
If rs_F16_CAB.RecordCount > 0 Then
rs_F16_CAB.MoveFirst
Do
RS1.AddNew

RS1.Fields("ID_PEDIDO") = rs_F16_CAB.Fields("ID_PEDIDO")
RS1.Fields("NOMBRES") = rs_F16_CAB.Fields("NOMBRES")
RS1.Fields("FECHA") = rs_F16_CAB.Fields("FECHA")
RS1.Fields("DESCRIPCION") = rs_F16_CAB.Fields("DESCRIPCION")
RS1.Fields("AUTORIZADO") = rs_F16_CAB.Fields("AUTORIZADO")

RS1.Update
rs_F16_CAB.MoveNext
Loop While Not rs_F16_CAB.EOF
End If
Set Me.DataGrid1.DataSource = RS1
End Sub
Private Sub Command2_Click()
' CANCELAR ARTICULO

ID2 = RS1.Fields("ID_PEDIDO")
XX1 = RS2.Fields("COD_ARTICULO")
CNT1 = Trim(CStr(RS2.Fields("CANTIDAD")))

TX1 = "UPDATE ARTICULOS SET STOCK=STOCK+" + CNT1 + " WHERE CODIGO='" + XX1 + " '"
nc.Execute (TX1)
nc.Execute ("DELETE FROM DETALLE_PEDIDO WHERE ID_PEDIDO='" + ID2 + "' AND COD_ARTICULO='" + XX1 + " '")
Detalle
End Sub

Private Sub Command3_Click()
'ELIMINA PEDIDO

ID2 = RS1.Fields("ID_PEDIDO")

If RS2.RecordCount > 0 Then
RS2.MoveFirst
Do

XX1 = Trim(RS2.Fields("COD_ARTICULO"))
CNT1 = Trim(CStr(RS2.Fields("cantidad")))
TX1 = "UPDATE ARTICULOS SET STOCK=STOCK+" + CNT1 + " WHERE CODIGO='" + XX1 + " '"
nc.Execute (TX1)
nc.Execute ("DELETE FROM DETALLE_PEDIDO WHERE ID_PEDIDO='" + ID2 + "' AND COD_ARTICULO='" + XX1 + " '")

RS2.MoveNext
Loop While Not RS2.EOF

End If
nc.Execute ("DELETE FROM PEDIDO WHere id_pedido='" + ID2 + "'")
Me.Command1_Click
Me.Detalle
End Sub
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Detalle
End Sub

Private Sub Form_Load()
With ShockwaveFlash1

.Movie = App.Path & "\Inversiones.swf"

End With


TXT1 = "select pedido.id_pedido,solicitante.nombres,pedido.fecha, area.descripcion,pedido.autorizado from pedido,area,solicitante where pedido.idpersonal=solicitante.idPersonal and pedido.destino=area.idDepartamento"
TXT2 = "select detalle_pedido.COD_ARTICULO,articulos.descripcion, detalle_pedido.cantidad,detalle_pedido.estado from detalle_pedido,articulos where detalle_pedido.cod_articulo=articulos.codigo"

If rs_F16_Solicitante.State = 1 Then rs_F16_Solicitante.Close
rs_F16_Solicitante.Open "select IDPERSONAL,NOMBRES FROM SOLICITANTE", nc, adOpenStatic, adLockOptimistic
Set Me.DataCombo1.RowSource = rs_F16_Solicitante
Me.DataCombo1.BoundColumn = "IDPERSONAL"
Me.DataCombo1.ListField = "NOMBRES"
End Sub


Sub Detalle()
XX1 = RS1.Fields("ID_PEDIDO") aqui me da el error

If rs_F16_DET.State = 1 Then rs_F16_DET.Close
rs_F16_DET.Open TXT2 + " AND id_pedido='" + XX1 + "'", nc, adOpenStatic, adLockOptimistic

'COD_ARTICULO,descripcion,cantidad,estado
Set RS2 = CrearTMPDET1
If rs_F16_DET.RecordCount > 0 Then
rs_F16_DET.MoveFirst
Do
RS2.AddNew

RS2.Fields("COD_ARTICULO") = rs_F16_DET.Fields("COD_ARTICULO")
RS2.Fields("DESCRIPCION") = rs_F16_DET.Fields("DESCRIPCION")
RS2.Fields("CANTIDAD") = rs_F16_DET.Fields("CANTIDAD")
RS2.Fields("ESTADO") = rs_F16_DET.Fields("ESTADO")
RS2.Update
rs_F16_DET.MoveNext
Loop While Not rs_F16_DET.EOF
End If
Set Me.DataGrid2.DataSource = RS2
End Sub