Access - SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

   
Vista:

SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

Publicado por victor (11 intervenciones) el 04/08/2015 14:57:59
Hola amigos que tal una ves mas por aquí preguntando, y agradeciendo de antemano su ayuda! Bueno vamos al problema.....
Tengo este código en mi base de datos, intento guardarlo en mi tabla que se llama reportes pero algunas veces tengo datos nulos, que no tienen 0 ni nada es nulo el valor, supongamos la variable "Aux_Area" aveces es nula no tiene valor ni nada pero aun asi no importa quiero que todo lo demas se guarde en mi tabla Reportes.......

Este es el codigo que tengo funciona a la perfeccion pero si "Aux_Area" es nula me aparece este error:

"Ha especificado una expresión que no tiene valor"

DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area)VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "');"



Como ven que tengo que hacer? quiero usar la función Nz... pero no se donde ponerla........
saludos amigos y gracias de antemano.
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

SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

Publicado por Enrique Heliodoro (1663 intervenciones) el 04/08/2015 15:49:25
Define 'valor nulo', porque lo que 'no existe' es difícil de tratar.

Si algún campo puede tener un valor nulo (y el destino, esto es: la tabla lo permite) la única forma de guardar ese registro es no asignando valor a ese campo en concreto.

En definitiva: construir la SQL en tiempo de ejecución en función de los valores 'que no son nulos'.
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

SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

Publicado por victor (11 intervenciones) el 04/08/2015 16:15:44
muchas gracias por tu respuesta te comento como tengo mi diseño.......guiándonos en una caja de texto...

mi caja de texto se llama area.text esta conectada a un formulario donde hago sumas.... supongamos 5+5 y me da un valor 10 en mi formulario A por ejemplo..... ese valor de 10 lo mando traer a mi formulario B para guardarlo en una tabla...
el problema es que aveces en mi formulario A no tengo valores para sumar...por lo cual su valor es nulo....y al momento de mandarlo llamar a formulario B.....se guardar en area.text y al momento de guardarlo en la base de datos al ejecutar el codigo :

DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area)VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "');"

me dice que la expresion no tiene valor....................
como vez??que piensas, quizas el error es mio??
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

SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

Publicado por Enrique Heliodoro (1663 intervenciones) el 04/08/2015 18:25:28
El entorno no me dice nada, es ambigua la explicación, así que centrare la respuesta en base a que en un determinado formulario 'pudiera no haber valores ... porque si, (punto y aparte)'.

Si se pudiera dar la circunstancia de la 'no existencia' de un valor o de un objeto (por ejemplo un campo de un formulario), se tendrá que utilizar una función que combinada con la función IIF, nos permita una alternativa.

En plan general se puede utilizar 'IsError' pero personalmente prefiero utilizar la especifica al tipo de dato esperado, como en este caso se espera un valor numérico, utilizaría (y utilizare en el ejemplo) la función 'IsNumeric':

IsNumeric([aquí el objeto a evaluar])

Lo anterior devolvería un True o False en función de que el valor contenido en el objeto fuera o no un numero, si la combinamos con IIF:

IIF (IsNumeric([aquí el objeto a evaluar]) ,[aquí el objeto a evaluar], 0)

Tendremos el valor de/en el objeto o un cero (o lo que utilicemos como segundo parámetro del IIF), con lo cual nunca habría un valor Null y el error quedaría enmascarado, enmascarado porque le damos un valor alternativo (y por lo tanto ficticio).

Si ese método no es aplicable (se requiere 'su valor' aunque este sea un NULL), solo queda reconstruir en tiempo de ejecución la sintaxis de la SQL para tomar e cuenta solo a los campos 'que no son NULL' asumiendo que la tabla admite nulos (aunque su verdadero valor es 'vacío o sin asignar')

¿Cómo hacerlo?....
Se recorren los objetos y en función de que tengan un valor aceptable, se encadenan en ambas lados de la SQL (lista de campos y lista de valores) algo como
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim Parte1 As String, Parte2 As String
Parte1 ="INSERT INTO Reportes("
Parte2 = ")VALUES("
IF IsNumeric([Un objeto]) Then
     Parte1 = parte1 & [NombreDelDestino]
     Parte2 = Parte2 & [un Objeto]
     End IF
.....
aquí irían las siguientes evaluaciones (y concatenaciones)
.....
Parte1 = Parte1 & Parte2 & ")"
 
... en Parte1 estaría la SQL completa ...
Es una guía/método para depurar con los datos reales (esto es: tu tarea de necesitar esta opción).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

SE PUEDEN GUARDAR VALORES NULOS EN UNA TABLA??

Publicado por victor (11 intervenciones) el 05/08/2015 13:28:47
Amigo gracias por tu respuesta y tu tiempo me sirvio bastante y disculpa la ambigua explicacion......gracias por todo ya me esta funcionando...saludos
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