¿Como inserto una fecha null?

CurrentDb.Execute "INSERT INTO OrdenServicio(IdOrden,FechaInicio,FechaFin,Proveedor,Trabajador,Descripcion) VALUES ( " & Me.Folio & " , #" _
                                              & Format(Me.FechaInicio, "MM/dd/yyyy hh:mm:ss ") & "# , #" & IIf(IsNull(Me.FechaFin), "NULL", Format(Me.FechaFin, "MM/dd/yyyy hh:mm:ss")) & "# , '" & Me.CmbProveedores & "' , '" _
                                              & Me.Ayudante & "', " & IIf(IsNull(Me.Descripcion), "NULL", "'" & Me. Descripcion & "'") & ")", dbFailOnError

Hola.. Este es mi insert lo que pasa que no se como insertar un "NULL" si mi campo de fecha esta vacio.

#" & IIf(IsNull(Me.FechaFin), "NULL", Format(Me.FechaFin, "MM/dd/yyyy hh:mm:ss")) & "#

Es la linea anterior me marca error sintaxis en donde Inserto "NULL" si la le fecha esta vacia("NULL")

Lo demas funciona bien

3 Respuestas

Respuesta
1

La verdad es que no entiendo la pregunta. ¿Quieres qué en caso de que la FechaFin sea nulo, te inserte en la tala el valor "Null"?. Si es eso usa la función nz, por ejemplo

insert into......values(nz([fechaFin],"Null")

Así, en el caso de que fechaFin sea nula te guarda en la tabla el valor Null

La función Nz a palo seco, por ejemplo Nz([fechinicio]) transforma los nulos en ceros, o si le pones algo, por ejemplo Nz([fechainicio], 7), te transforma los nulos en 7

Lo hice como me indicas me sale error igual el problema es cuando la fecha es nula cuando no es nula la inserta bien

En este caso le digo al cuadro de texto de la derecha que al recibir el enfoque, si la fecha UNA es nula, que ponga Null y queda así.

Pero si el campo donde quieres insertar tiene el formato Fecha Corta, te va a dar error, por eso sería mejor usar

nz([fechafin],"")

Es decir, que si fecha Fin es nula te insertaría una cadena vacía

[url=http://www.mediafire.com/file/12injrro1aeldz3/Orden+de+Servicio+-+copia.rar]
http://www.mediafire.com/file/12injrro1aeldz3/Orden+de+Servicio+-+copia.rar[/url] 

adjunto mi modulo para que cheken 

Hay cosas que no entiendo. Si al abrir el formulario Orden de Servicio el cuadro de texto FechaFin va a estar bloqueado ¿para qué quieres que te inserte su valor nulo?. No lo pongas en la instrucción y ya está.

Por otro lado, me da que tienes el ordenador configurado con la fecha americana, es decir mm/dd/aaaa. Si ese es el caso, en la tabla basta con elegir como formato de los campos fecha Fecha General

Si es cierto. No debería insertarlo lo que tenia pensado era ocupar el mismo INSERT para para editar y guardar. Ya lo hice de la manera que me indicas solo que quería hacerlo de la manera que planteo anteriormente.

Saludos

Lo que si puedes hacer es que el campo donde vas a guardar la fecha fin sea texto, entonces si puedes ponerle lo de null, pero te tratará los valores como texto, Es decir, no podrás ordenarlos, sumarlos, etc.

¡Gracias! Así es . He estado leyendo y no encuentro una función que omita si es null o también estoy buscando como asignarle null a date pero no se puede "No coinciden los tipos " me sale eso.

Respuesta
1

Antonio: Sin probarlo, creo que simplemente sin querer forzarlo, te dejará nulo.

Además le estas diciendo que te inserte una cadena que se llama "NULL", que no es un Nulo, en un campo, que casi seguro tendrá el Formao de Fecha.

Si te funciona, mira lo que te guarda en Descripción si ese campo es Nulo, y verás que te guarda NULL. Ya me contarás, porque no lo he probado. Saludos >> Jacinto

No en la descripción lo hace bien, no inserta nada -- deja el espacio en blanco- osea inserta null

Antonio: Me comentas que en el Campo Descripción. Te inserta un Nulo, pero no me comentas si quitando el IIf(IsNul... de la Fecha te ha funcionado. Un saludo >> jacinto

Solo inserta cuando hay fecha cuándo es nulo da error

http://www.mediafire.com/file/12injrro1aeldz3/Orden+de+Servicio+-+copia.rar 

Adjunto mi modulo para que cheken

Antonio: La solución que le veo, si quieres forzar el valor Nulo en ese campo, va en la línea que apunta Icue. Al menos en ese proceso no lo guardes, porque además tal como lo tienes, siempre será Nulo. Un saludo >> Jacinto

Respuesta
1

No se en access pero en sql server y oracle la constante null no se encierra en comillas...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas