Access - uso no valido de null

 
Vista:
sin imagen de perfil

uso no valido de null

Publicado por victor alfonso (21 intervenciones) el 21/02/2023 03:21:48
Muy buena tardes, cordial saludo.
Estoy intentando realizar una actualización de registros en una DB Access, en la cual utilizo la siguiente instrucción SQL. pero me da un error de uso no valido de NULL. cuando hago clic en el boton para guardarlos cambios.

Aclaro que este error sale únicamente cuando dejo campos vacíos, por que cuando los diligencio todos envia todo normal sin problemas.

CurrentDb.Execute "UPDATE tbSemestre1 SET materiaModulo1 = '" & Replace(Me.cmbmateriaModulo1, "'", "''") & "',materiaModulo2 = '" & Replace(Me.cmbmateriaModulo2, "'", "''") & "', " _
& "materiaModulo3 = '" & Replace(Me.cmbmateriaModulo3, "'", "''") & "',materiaModulo4 = '" & Replace(Me.cmbmateriaModulo4, "'", "''") & "', " _
& "materiaModulo5 = '" & Replace(Me.cmbmateriaModulo5, "'", "''") & "',materiaModulo6 = '" & Replace(Me.cmbmateriaModulo6, "'", "''") & "' " _
& "WHERE idEstudiante = " & Me.cmbidentificacionEstudiante & "", dbFailOnError
MsgBox "¡Atención!" & vbCrLf & "" & vbCrLf & _
"Los módulos de formación han sido matriculados satisfactoriamente al estudiante en su respectiva formación.", vbInformation, "Institución CENFORT"


acá el código completo.

Private Sub MatricularModulos1()
' On Error GoTo ManipulaError
If IsNull(Me.cmbidentificacionEstudiante) Then
MsgBox "¡Atención!" & vbCrLf & "" & vbCrLf & _
"Se debe definir la identificación del estudiante para realizar el proceso. Revise los campos e inténtelo nuevamente.", vbInformation, "Institución CENFORT": Exit Sub
Else
CurrentDb.Execute "UPDATE tbSemestre1 SET materiaModulo1 = '" & Replace(Me.cmbmateriaModulo1, "'", "''") & "',materiaModulo2 = '" & Replace(Me.cmbmateriaModulo2, "'", "''") & "', " _
& "materiaModulo3 = '" & Replace(Me.cmbmateriaModulo3, "'", "''") & "',materiaModulo4 = '" & Replace(Me.cmbmateriaModulo4, "'", "''") & "', " _
& "materiaModulo5 = '" & Replace(Me.cmbmateriaModulo5, "'", "''") & "',materiaModulo6 = '" & Replace(Me.cmbmateriaModulo6, "'", "''") & "' " _
& "WHERE idEstudiante = " & Me.cmbidentificacionEstudiante & "", dbFailOnError
MsgBox "¡Atención!" & vbCrLf & "" & vbCrLf & _
"Los módulos de formación han sido matriculados satisfactoriamente al estudiante en su respectiva formación.", vbInformation, "Institución CENFORT"
DoCmd.Close
End If
Exit Sub
'ManipulaError:
' MsgBox Err.Description, vbCritical, "Atencion"
End Sub


Agradezco su valiosa ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

uso no valido de null

Publicado por Anonimo (3316 intervenciones) el 21/02/2023 04:54:39
Si el fallo esta en que falten datos de alguno de los módulos (su valor sera Null), se tendrá que validar cada uno de ellos antes de procesarlos (uno a uno).

Se puede hacer así:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub MatricularModulos1()
Dim NN as long, ABC As COntrol
If IsNull(Me.cmbidentificacionEstudiante) Then MsgBox "¡Atención!" & vbCrLf & "" & vbCrLf & "Se debe definir la identificación del estudiante para realizar el proceso. Revise los campos e inténtelo nuevamente.", vbInformation, "Institución CENFORT": Exit Sub
 
For NN = 1 To 6
   Set ABC = Me.Controls("cmbmateriaModulo" & NN)
    If Nz(ABC, "") <> "" Then CurrentDb.Execute "UPDATE tbSemestre1 SET materiaModulo" & NN & " = '" & Replace(ABC, "'", "''") & "' WHERE idEstudiante = " & Me.cmbidentificacionEstudiante
    Next NN
 
MsgBox "¡Atención!" & vbCrLf & "" & vbCrLf & "Los módulos de formación han sido matriculados satisfactoriamente al estudiante en su respectiva formación.", vbInformation, "Institución CENFORT"
DoCmd.Close
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

uso no valido de null

Publicado por victor alfonso (21 intervenciones) el 21/02/2023 12:53:24
Muy buenos días, estoy muy agradecido por su valioso aporte aporte, me ha sido de gran utilidad, funciona muy bien en la ejecución del código. nuevamente mil gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar