Como pregunto si un valor de un campo es nulo

Adrian
17 de Febrero del 2004
Hola a todos,
Como pregunto si un valor de un campo es nulo
ya sea trabajando con ado o con dao.
me podrian pasar un ejemplito, plis
gracias de antemano.

JUAN BRETON
17 de Febrero del 2004
Public Function Nulo(vVariable As Variant, byTipo As Byte) As Variant
'Funcion Validar Nulo
'1 = String
'0 = Valor

On Local Error GoTo Errores
Dim vVacio_o_Cero As Variant

vVacio_o_Cero = IIf(byTipo = 0, 0, "")
Nulo = IIf(IsNull(vVariable), vVacio_o_Cero, vVariable)

On Local Error GoTo 0
Exit Function
Errores:
MsgBox "Error " & Chr(13) & Err.Number & Chr(13) & Err.Description, vbCritical + vbOKOnly, "ERROR"
End Function

copiala en un modulo e invocala desde el proyecto
Ejemplo.

text1.text = nulo(rs.fields("Nombre"),1) Si el campo es un string

text1.text = nulo(rs.fields("Nombre"),0) si el campo es numerico
El programa no explota si un campo tiene un valor nulo.

Desde Republica Dominicana, Para el Mundo. [email protected]

CESAR NAVA SOTO
17 de Febrero del 2004
Con IsNull(Campo). Ejemplo:

If IsNull(rsPrueba("Nombre")) = False Then
MsgBox "Falta nombre"
Else
MsgBox rsPrueba("Nombre")
End If

Baltasar
17 de Febrero del 2004
Exactamente así, pero al revés ;-)

if IsNull(rsPrueba("Nombre"))=TRUE Then
MsgBox "Falta nombre"
Else
MsgBox rsPrueba("Nombre")
End If

de todos modos, el " = TRUE " sobra, pudiéndolo dejar en

f IsNull(rsPrueba("Nombre")) Then . . . .

Saludos

jhon
17 de Febrero del 2004
muy bien, solo tienes que usar IIF, esta funcion devuelve un valor dependiendo de la expresion
asi IIF(isnull(expresion),TRUE,FALSE)

x ejem

xtelefono=IIF(isnull(rs!telefono),"no tiene",rs!telefono)

este método hace tu código mas legible ahorrandote muchas lineas

Baltasar
17 de Febrero del 2004
Jhon, con el iif, cómo haces aparecer un msgbox que te avise de la falta de teléfono?

Gracias.

Adrian
17 de Febrero del 2004
Hice este codigo pero no me funciona.
Quieren hecharle un vistazo y decirme que estoy haciendo mal

Set rstemp = x.OpenRecordset("alumno")
If IsNull(rstemp("cod_alu")) = True Then
MsgBox "no hay codigo"
Else
MsgBox "si hay codigo"
End If
End sub

Saludos