Consulta de actualización con valores nulos

Mi problema es el sig. Espero me pueda ayudar.
Por medio de un formulario lleno datos en la primera fila de una tabla, con la que hago un informe, luego al necesitar otro informe hago correr una consulta de actualización para sustituir los valores de esa fila, el problema es que no sé como hacer para que los valores nulos del formulario también anulen los de la tabla. EJ:
Informe uno: Campo1=Manzana; Campo2=(Vacío); Campo3=Pera; Campo4=(Vacío)
Informe dos: Campo1=(Vacío); Campo2=Plátano; Campo3=(Vacío); Campo4=Sandía
Al actualizar del informe 1 al informe 2 el campo1 que está vacío no se actualiza a Vacío (en blanco) si no que mantiene el valor del informe anterior, es decir, Manzana.

2 respuestas

Respuesta
1
Si lo que quieres es tener un solo registro en la tabla y que se actualice, yo crearía una tabla que llamaría Productos con un campo Producto (ahí metería Peras, Manzanas...). Tendría un formulario independiente (no pones nada en origen del registro) y pondría 4 cuadros combinados que llamaría selCampo1, selCampo2, selCampo3 y selCampo4 en origen de la fila de estos campos:
SELECT Producto FROM Productos ORDER BY producto;
En la acción Al hacer clic ---> Procedimiento de evento ---> Me. Refresh
Luego un botón con el siguiente código:
Me. Refresh
DoCmd.RunSQL "Update Tabla1 Set Campo1='" & Form!selCampo1.Value & "', Campo2='" & Form!selCampo2.Value & "',Campo3='" & Form!selCampo3.Value & "',Campo4='" & Form!selCampo4.Value & "'"
Form!selCampo1.Value = ""
Form!selCampo2.Value = ""
Form!selCampo3.Value = ""
Form!selCampo4.Value = ""
Si el informe lo tienes basado en la tabla añadiría otra linea a este código:
DoCmd. OpenReport "NombreDelInforme", acViewPreview
Me cuentas.
mmm la sugerencia está bien, pero el problema es que son muchos informes con demasiados registros (eso implicaría un inmenso trabajo) considerando que las consultas de actualización ya están hechas para cada informe me preguntaba si habría algún criterio con el que pueda decirle que los campos que están vacíos sean actualizados a "vacío" tal como por ejemplo se podría hacer en excel ej: Si (Campo1 es Null;"") es decir, si el campo es Null entonces diga "Nada".
¿Se podrá?
Saludos.
Tendrías que utilizar la función SiInm(condición;ResultadosiVerdadero;ResultadoSiFalso)
Si lo pones en código:
Iif(condición, ResultadosiVerdadero, ResultadoSiFalso)
En tú caso:
siInm(Isnull([Campo1]);"")
Respuesta
1
Si te he entendido bien tienes unos datos incorporados en unos cuadros de un formulario que cuando ejecutas una consulta de actualización, actualizan la primera fila de una tabla, y en caso de que el nuevo dato sea nulo, deseas conservar el inicial.
Si es así, te diría que en el comando que ejecuta la consulta de actualización, lo franciones en consultas individuales que verifiquen el estado de nulo o no nulo del campo que quieres actualizar. Por lo que primero verificamos si es nulo el dato y en caso de que no lo sea ejecutamos la consulta de actualización de ese campo únicamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas