
16/02/2010, 14:54
|
 | | | Fecha de Ingreso: febrero-2010 Ubicación: Maracay, Venezuela
Mensajes: 16
Antigüedad: 15 años, 1 mes 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 |