Evaluar un campo vacío, no nulo, ¿En una expresión?

Primero decir que mi nivel en access es más bien bajo, no tengo ni idea de eventos y módulos y demás, tan solo utilizo las macros para poder realizar mis pequeñas aplicaciones.
El problema que tengo es que abro un formulario para tomar un valor y ponerlo en otro formulario, pero el primer formulario me da un valor vacío, ya que no existe, y no es nulo, ya que el formulario 1, viene de una consulta de union. Entonces el formulario 2 me muestra #Error, y quiero que me muestre 0.
Me he vuelto loco buscando pero no encuentro como hacerlo, no se si se puede dar una expresión condicional en la macro, para que si es #Error me lo establezca como 0, no se si hay alguna otra solución que pueda manejar sin entrar en mucha complicación.

2 respuestas

Respuesta
1
Con esta fórmula validas si el campo esta en blanco te pone 0 y si no esta en blanco te pone lo que hay en el campo del formulario.
En mi caso el formulario1 se llama clientes y el campo a validar se llama Nombre, el formulario2 de llama clientes2.
=IIf(IsNull([Forms]![Clientes]![Nombre]),0,[Forms]![Clientes]![Nombre])
Nota: mi version de access esta en ingles... si la tuya esta en español seria en ves de IIF seria SiInm.
Otra cosa... pata que te ponga el valor, los dos formularios deben de estar abiertos..
Para Saber más Visita:
Gracias por tu respuesta,
Pero hay un problemilla, el campo no es nulo, el campo no tiene nada, por que viene de una consulta de union, en la cual puede o no estar el registro buscado, si no esta el registro buscado, al abrir el formulario aparece vacío, no hay campo, no lo considera nulo, y entonces me no puede evaluarlo con el "SiImm"
Al venir de una consulta de union no permite añadir registros, con lo que no hay la opción de agregar, y por ello pueda aparecer Nulo, y por lo tanto poder asignarle el 0.
Un saludo
Alberto
Validalo desde Vb al en el evento al cargar, ponle
If Isnull ([campo]) Then
Me.campo = 0
End If
Respuesta

Yo tuve el mismo problema, la solución en VBA es:

 If IsNumeric(Range("D" & i)) = False Then
            variable = 0  ' o la variable que use
 Else
            variable = Range("D" & i)
 End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas