Funcion if dejo de funcionar sin razon access vba

Tengo un formulario que funcionaba perfectamente, si dejaba un texto en blanco me daba un mensaje, ahora no me funciona, este es el código:

Private Sub cmbProcesar_Click()
If Me.txtbultos_in.Value = Null Or Me.txtbultos_in.Value = "" Then
MsgBox "DEBE COLOCAR EL NUMERO DE BULTOS", vbCritical, "AVISO"
Me.txtbultos_in.SetFocus
Else
If Me.txtunidades_in.Value = Null Or Me.txtunidades_in.Value = "" Then
MsgBox "DEBE COLOCAR EL NUMERO DE UNIDADES", vbCritical, "AVISO"
Me.txtunidades_in.SetFocus
Else
Set Rs = CurrentDb.OpenRecordset("SELECT * FROM T_Stock WHERE Codigo= '" & [Forms]![frm_lista_productos]![txtcodigo] & "'", dbOpenDynaset)
With Rs
.Edit
!Cantidad_Bultos = !Cantidad_Bultos - Me.txtbultos_in.Value
!Cantidad_Unidades = !Cantidad_Unidades - Me.txtunidades_in
Me.txtcantidad_bultos = Rs!Cantidad_Bultos
Me.txtcantidad_unidades = Rs!Cantidad_Unidades
Forms!frm_lista_productos.txtbultos.Requery
Forms!frm_lista_productos.txtunidades.Requery
Forms!frm_stock_detalle.txtbultos = Rs!Cantidad_Bultos
Forms!frm_stock_detalle.txtunidades = Rs!Cantidad_Unidades
.Update
End With
Rs.Close
Set Rs = Nothing
MsgBox "EL STOCK DE MODIFICO CORRECTAMENTE", vbInformation, "AVISO"
Me.txtbultos_in.Value = ""
Me.txtbultos_in.Value = Null
Me.txtunidades_in.Value = ""
Me.txtunidades_in.Value = Null
Me.txtbultos_in.SetFocus
End If
End If
End Sub

Respuesta
1

Prepararía el código de otra forma y utilizaría funciones nativas de Access (Nz) para evaluar los NUll, pero es optativo.

Para poder verificar cual es el problema, lo más adecuado es hacer un seguimiento paso a paso del código, algo sencillo de preparar.

En el actual código, se pone un punto de interrupción y se ejecuta el formulario, al llegar a esa función (clic en el botón de procesar) se debería hacer visible la ventana de VBA y detenida la ejecución en la línea antes marcada.

Para que se ejecuten las sentencias de una en una se pulsa 'F8' y para finalizar el seguimiento se pulsa 'F5'.

Si hace lo que se cree que debe de hacer (lo que se le ha programado) habrá finalizado de forma correcta y si en algo 'se desvía del guion' se corrige y (según consienta o no la corrección) se continua o se aborta para volver a ejecutarlo con las modificaciones recién hechas.

NO pasa nada por hacer el seguimiento, lo peor que (inadvertidamente) se desplace algo con el teclado o el ratón, pero nada que no se pueda recuperar con el clásico 'Control +Z (y algo más de atención).

Y lo fundamental cuando se trata de manipular algo es: una copia de seguridad que permita volver al inicio y partir de cero nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas