Cómo manejar valores nulos en Access: Is Null y IsNull()

Los valores nulos son un enigma para algunos y, como resultado, a menudo son manejados de manera deficiente incluso por los mejores profesionales de TI. Pocos de nosotros podemos escapar completamente de los errores que aparecen cuando las entradas nulas se introducen en la aplicación de manera inesperada. Quizás la mejor manera de manejar las entradas nulas sea evitarlas por completo, pero eso no siempre es posible. Los valores nulos son válidos en algunos casos y cuando una aplicación debe acomodarlos, es necesario asegurarse de que Access los encuentre. Los errores que resultan de las entradas nulas manejadas de manera incorrecta no siempre son obvios y pueden aparecer más tarde como datos erróneos. En ese momento, es posible que tenga dificultades para rastrear el problema. En este artículo, le mostraré cómo utilizar las funciones Is Null y IsNull().

Índice de Contenido
  1. Definiendo el valor nulo
  2. Un poco de antecedentes
  3. Uso de Is Null e Is Not Null
  4. Ejemplo de cláusula WHERE
  5. Uso de IsNull()
  6. La clave es saber que los valores nulos existen

Definiendo el valor nulo

Es fácil pensar en las entradas nulas y en las entradas en blanco como lo mismo, pero no son iguales. El término "nulo" simplemente significa que los datos están ausentes o son desconocidos. Eso no es lo mismo que decir que los datos no existen, aunque puede que no existan. A menudo, las entradas nulas son una indicación de que el valor estará disponible más adelante o de que alguien todavía está buscando los datos. Eventualmente, es posible que descubra que los datos no son válidos para ese registro en particular, pero hasta que se llegue a un consenso, el valor debe permanecer nulo. Por ejemplo, un cliente puede tener varios números de teléfono, pero su usuario puede no conocer el número de fax cuando crea el nuevo registro. Hasta que obtenga el número o sepa que el cliente no tiene fax en absoluto, la entrada de fax es nula. Eventualmente, ingresará el número correcto o indicará de alguna manera que los datos no son aplicables al registro.

Un poco de antecedentes

Is Null e IsNull() encuentran ambos valores nulos, pero no se utilizan de la misma manera. Utilizaría Is Null e Is Not Null en expresiones de consulta y cláusulas WHERE de SQL. IsNull(), por otro lado, es una función de Visual Basic for Applications (VBA) y se utilizaría solo en módulos VBA. Null es una palabra reservada y representa una entrada nula en las expresiones, pero rara vez se usa este valor solo. Ciertamente no necesita ingresarlo como un valor. Si no ingresa nada en absoluto, Access asume un valor nulo para la entrada. En este artículo, estoy utilizando minúsculas al referirme a la condición nula general; las mayúsculas denotan un valor nulo real.

Uso de Is Null e Is Not Null

Debes combinar el operador SQL Is con Null para encontrar valores nulos. No puedes usar el operador = para comparar valores nulos con cualquier cosa, ya que el resultado siempre será nulo. Esto no siempre es cierto fuera de Access, así que ten cuidado al pasar expresiones de criterio que contengan nulos a través de conexiones ODBC y OLE DB. Agrega el operador Not de SQL para encontrar valores que no sean nulos.

Usando Northwind, la base de datos de muestra que viene con Access, crearé algunas consultas para ilustrar el uso de Is Null e Is Not Null. Primero, para encontrar valores nulos en el campo Región de la tabla Empleados, crea una nueva consulta basada en esa tabla y agrega los campos Apellido y Región al cuadro. En la celda del criterio del campo Región, ingresa Null o Is Null para completar la consulta mostrada en Figura A. (Si ingresas Null, Access lo cambia automáticamente a Is Null). Los resultados, mostrados en Figura B, identifican los valores de Región nula por empleado.

Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 1 Newsmatic

Figura A: Usa Is Null para encontrar valores nulos.

Cómo simular un clic derecho desde el teclado en Windows
Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 2 Newsmatic

Figura B: Hay cuatro registros con valores de Región nulos.

Ahora, agrega Not a la mezcla para encontrar registros donde el campo Región no sea nulo. Para hacerlo, vuelve a la consulta en vista de diseño y agrega el operador Not, como se muestra en Figura C. Ejecuta la consulta para ver los resultados mostrados en Figura D.

Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 3 Newsmatic

Figura C: Is Not Null excluirá los valores nulos de los resultados.

Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 4 Newsmatic

Figura D: Esta vez, la consulta muestra los valores de Región que no son nulos.

Ejemplo de cláusula WHERE

También utilizarás la forma Is Null en cláusulas WHERE de SQL. Un buen ejemplo es el método OpenForm, ya que filtra el conjunto de registros de un formulario. Para ilustrar el uso de Is Null en esta situación, selecciona el Editor de Visual Basic (VBE) y introduce lo siguiente en la ventana Inmediato:
DoCmd.OpenForm "Empleados",,,"Región Is Null"

Luego, vuelve a Access y encontrarás el formulario Empleados abierto. La barra de navegación indica un conjunto filtrado de cuatro registros. Haz clic en la pestaña Información personal y verifica el control Región: está vacío (nulo). Si navegas por todos los registros de este conjunto filtrado, verás que cada valor de Región es nulo. Para excluir los valores de Región nulos, simplemente agrega el operador Not de la siguiente manera:
DoCmd.OpenForm "Empleados",,,"Región Is Not Null"

10 atajos de teclado para Windows que debes conocer

Uso de IsNull()

La función IsNull() pertenece a la biblioteca VBA y devuelve un valor booleano que indica si una expresión o variable es nula. Para ilustrar, construyamos un formulario simple y usemos IsNull() para verificar el valor en un control de caja de texto. Para hacerlo:

  1. Abre un formulario en blanco y agrega dos controles de caja de texto al formulario. Nombra los controles txtUno y txtDos.
  2. Haz clic en el botón Code de la barra de herramientas Diseño de formulario para abrir el VBE.
  3. Introduce el procedimiento del evento que se muestra en Listado A.
  4. Abre el formulario en vista de formulario, tabula pasando txtUno, ingresa un valor solo en txtDos y luego presiona Tab para ejecutar el evento LostFocus de txtDos.

El evento LostFocus de txtDos intenta mostrar los resultados de la expresión txtUno & txtDos, pero no puede porque txtUno es nulo. En consecuencia, la expresión genera el error que se muestra en Figura E. Elimina el error y vuelve al módulo del formulario. Reemplaza el procedimiento del evento LostFocus con el que se muestra en Listado B.

Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 5 Newsmatic

Figura E: El valor nulo de txtUno devuelve un error.

Vuelve al formulario en vista de formulario y deja al menos uno de los controles vacío y pasa por txtDos para activar su evento LostFocus. El procedimiento mostrará el mensaje simple que se muestra en Figura F, en lugar de generar el error anterior. Cuando ambos controles contienen un valor, la condición Else muestra el resultado de la expresión txtUno & txtDos. (Hay formas más sencillas de determinar el valor de un control, este ejemplo simplemente ilustra el uso de la función IsNull() de VBA.)

Cómo manejar valores nulos en Access: Is Null y IsNull() - Hardware | Imagen 6 Newsmatic

Figura F: La función IsNull() de VBA también encuentra valores nulos.

Para excluir los valores nulos, simplemente agrega el operador SQL en el formulario:
Not IsNull(campo)

Guía rápida para identificar diferentes tipos de chips de RAM

Una declaración así coincidirá con las entradas que no sean igual a nulo. Utiliza la función IsNull() en tu código VBA para encontrar valores nulos antes de que tengan la oportunidad de generar errores.

La clave es saber que los valores nulos existen

Si una aplicación debe acomodar valores nulos, manéjalos correctamente. La clave para manejarlos correctamente es saber que están ahí. Utiliza Is Null e Is Not Null en expresiones de criterio, y utiliza IsNull() en el código VBA para encontrar valores nulos antes de que se introduzcan en tu aplicación con consecuencias inesperadas y a menudo negativas.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Hardware, allí encontraras muchos artículos similares a Cómo manejar valores nulos en Access: Is Null y IsNull() , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.