Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/02/2010, 09:46
zxs23
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Respuesta: Error "3021" en tiempo de Ejecucion VB 6

Antes que nada utiliza la etiqueta code cuando pongas codigo por que es dificil de leer utiilza el boton #

El problema ocurre al precionar el command3 el error sucede al llegar al sub Me.Detalle y por alguna razon el XX1 = RS1.Fields("ID_PEDIDO") ya no contiene nada por eso te da el error.
Código:
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
Todavia no capto bien lo que pasa aunque prueba asi para verificar que el valor de XX1 todavia contiene algo.

Código:
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
Text1= RS1.Fields("ID_PEDIDO")  'Este valor se pierde por alguna razon me parece que ocurre por que un par de lineas arriba utilizas DELETE y ahi se borra
End Sub