Pregunta sobre Valores Nulos

27/05/2010 - 22:09 por JoseMB | Informe spam
Buenos dias

Cuando en un formulario cuya tabla adjunta que NO admite valores nulos
(porque asi lo quiero) y acces lanza esa ventana de error diciendo que el
campo XXX no puede contener valor nulo.

Me gustaria saber si hay alguna forma para CAMBIAR eso por un msgbox un poco
mas elegante?

Y si es posible pues ¿como se hace?

Gracias por vuestra ayuda.

Preguntas similare

Leer las respuestas

#1 emiliov
27/05/2010 - 22:57 | Informe spam
Hola JoseMB

debes de poner en los eventos al salir del control(NombredeCampo) y del
formulario antes de actualizar algo así:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(NombredeCampo) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Sex.SetFocus
End If
End Sub

Private Sub NombredeCampo_Exit(Cancel As Integer)
If IsNull(Sex) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Cancel = True
End If
End Sub


saludos
Respuesta Responder a este mensaje
#2 JoseMB
27/05/2010 - 23:47 | Informe spam
Que tal

Gracias por el codigo pero tengo dos problemillas.

De entrada la parte que va al salir del control no hace nada o eso parece,
asi la pongo en realidad.

Private Sub Fecha_Exit(Cancel As Integer)
If IsNull(Fecha) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Cancel = True
End If
End Sub

Y en cuanto a la otra parte SI que funciona pero como en el formulario tengo
dos campos que no pueden ser nulos ocurre que el primer msgbox me sale bien,
el segundo tambien pero a continuacion me sale otro del sistema.

Asi lo tengo:

If IsNull(Fecha) Then

' Manipulacion del msgbox

Mensaje = "El campo FECHA no puede estar vacio"
Estilo = vbOKOnly + vbCritical
Titulo = "¡ADVERTENCIA!"

MsgBox Mensaje, Estilo, Titulo

'

If IsNull(Fecha) Then Fecha.SetFocus
If IsNull(Variedad) Then Variedad.SetFocus
If IsNull(Fecha) And IsNull(Variedad) Then Fecha.SetFocus

End If


If IsNull(Variedad) Then

' Manipulacion del msgbox

Mensaje = "El campo VARIEDAD no puede estar vacio"
Estilo = vbOKOnly + vbCritical
Titulo = "¡ADVERTENCIA!"

MsgBox Mensaje, Estilo, Titulo

'

If IsNull(Fecha) Then Fecha.SetFocus
If IsNull(Variedad) Then Variedad.SetFocus
If IsNull(Fecha) And IsNull(Variedad) Then Fecha.SetFocus

End If

En teoria si hago esto asi tambien deberia funcionar pero por lo visto es
que NO:

Private Sub Form_BeforeUpdate(Cancel As Integer)

If IsNull(Fecha) or isnull(Variedad) Then

MsgBox "No puede contener NombredeCampo un valor nulo"

Fecha.SetFocus
Variedad.SetFocus

End If

End Sub


¿Sabriais decirme donde esta el problema?


Gracias por vuestra ayuda.


"emiliov" wrote:

Hola JoseMB

debes de poner en los eventos al salir del control(NombredeCampo) y del
formulario antes de actualizar algo así:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(NombredeCampo) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Sex.SetFocus
End If
End Sub

Private Sub NombredeCampo_Exit(Cancel As Integer)
If IsNull(Sex) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Cancel = True
End If
End Sub


saludos
Respuesta Responder a este mensaje
#3 JoseMB
27/05/2010 - 23:53 | Informe spam
Hola de nuevo

Creo que ya encontre el problemilla

El codigo quedaria asi:

Private Sub Form_BeforeUpdate(Cancel As Integer)

If IsNull(Fecha) Then

' Manipulacion del msgbox

Mensaje = "El campo FECHA no puede estar vacio"
Estilo = vbOKOnly + vbCritical
Titulo = "¡ADVERTENCIA!"

MsgBox Mensaje, Estilo, Titulo

'

If IsNull(Fecha) Then Fecha.SetFocus
If IsNull(Variedad) Then Variedad.SetFocus
If IsNull(Fecha) And IsNull(Variedad) Then Fecha.SetFocus

Cancel = True

End If


If IsNull(Variedad) Then

' Manipulacion del msgbox

Mensaje = "El campo VARIEDAD no puede estar vacio"
Estilo = vbOKOnly + vbCritical
Titulo = "¡ADVERTENCIA!"

MsgBox Mensaje, Estilo, Titulo

'

If IsNull(Fecha) Then Fecha.SetFocus
If IsNull(Variedad) Then Variedad.SetFocus
If IsNull(Fecha) And IsNull(Variedad) Then Fecha.SetFocus

Cancel = True

End If


Al menos aparentemente funciona.

Gracias por vuestra ayuda.


"emiliov" wrote:

Hola JoseMB

debes de poner en los eventos al salir del control(NombredeCampo) y del
formulario antes de actualizar algo así:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(NombredeCampo) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Sex.SetFocus
End If
End Sub

Private Sub NombredeCampo_Exit(Cancel As Integer)
If IsNull(Sex) Then
MsgBox "No puede contener NombredeCampo un valor nulo"
Cancel = True
End If
End Sub


saludos
Respuesta Responder a este mensaje
#4 JoseMB
28/05/2010 - 01:48 | Informe spam
Muchas gracias por esta idea mas "reducida", tambien funciona bien pero
olvidaste un pequeño detalle.

Cancel=true (Antes de cada End If)

por lo demas perfecto.

Ah! Por ahi abajo tengo otra pregunta a medio tratar por el grupo, podrias
mirartela ya que estas.

es: Dudas ListBox

que bien escrito seria Dudas ComboBox pero me equivoque.



Gracias por vuestra ayuda.


"emiliov" wrote:

Me alegró JoseMB

podemos simplificar un poco así:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Fecha) Then
MsgBox "El campo Fechano puede estar vacio", vbOKOnly + vbCritical,
"¡ADVERTENCIA!"
Fecha.SetFocus
Else
If IsNull(Variedad) Then
MsgBox "El campo Variedadno puede estar vacio", vbOKOnly + vbCritical,
"¡ADVERTENCIA!"
Variedad.SetFocus
End If
End If
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida