jueves, 11 de agosto de 2022

Excel y Access (III): El uso de WHERE en las sentencias SQL

Hoy vamos a continuar trabajando con el RecorSet para importar datos de Access hacia Excel. En esta ocasión vamos a concentrarnos en las sentencias SQL y en específico en la instrucción WHERE que nos servirá para extraer registros que cumplen las condiciones específicas que deseemos. No olviden que trabajaremos con los archivos del artículo anterior (Enlace).

Entonces, vamos a recodar que nuestra variable llamada SQL es justamente con la que enviamos las sentencias SQL a Access y usaremos esa misma variable. Solo para recordar, la que usamos la vez anterior es:

SQL = "Select * From Vendedores"

No olvidando que Select es la instrucción que selecciona los registros y al poner un asterisco estamos diciendo que extraiga todos los registros de la tabla, o tablas, que indicamos a continuación con From.

Entonces ¿Cómo se usa Where? Verán que es relativamente fácil; por ejemplo, supongamos que queremos extraer solo los datos cuya columna "Sexo" tiene registros que dicen "Masculino", pues basta colocar así:

SQL = "SELECT * FROM Vendedores WHERE Sexo= 'Masculino' "

Es decir, estamos diciendo que extraiga todos los registros de la tabla “Vendedores” en donde el campo "Sexo" sea igual a "Masculino". Ojo, al ser el campo “Sexo” del tipo Texto, es necesario que el parámetro enviado en el Where vaya entre dos apóstrofos. Por cierto, las instrucciones SQL pueden ir en minúsculas o mayúsculas; en esta ocasión las puse en mayúsculas solo con la intención de resaltarlas. Ah, por cierto, el resultado de la macro, con el cambio respectivo, debería ser este:

Se puede usar Where con cualquiera de los campos e incluso en más de uno a la vez. Por ejemplo, miren esto:

SQL = "SELECT * FROM Vendedores WHERE Sexo= 'Masculino'  AND Tienda = 'Tienda 002' " 

El resultado será el siguiente:

Así como AND, también podemos usar OR. Usando parámetros como el anterior y cambiando el AND por OR, podríamos dejar así la sentencia:

SQL = "SELECT * FROM Vendedores WHERE Sexo= 'Masculino' OR Tienda = 'Tienda 002' "

¿Notan la diferencia? Ya no solo extrajo los registros que cumplen con ser masculino y de la Tienda 002, sino que esta vez se extraen los que son masculino o que también son de la Tienda 002.

También podemos hacer uso de los campos numéricos para usar con Where, aunque en la tabla solo es numérico el campo ID", dado que estos son solo ejercicios, lo usaremos. Por ejemplo, supongamos que queremos los mayores de 10, entonces pondríamos así:

SQL = "SELECT * FROM Vendedores WHERE ID > 10"

Por cierto, a los valores de los campos numéricos no se les coloca apóstrofos. En la hoja deberíamos tener los siguientes datos después de correr la macro:

También se puede usar menor (<) e igual (=) para dichos valores numéricos, no dejen de probarlos.

Y eso, amigos y amigas, es todo por hoy, espero les haya gustado. En la próxima ocasión seguiremos con Where pero aplicado a fechas, que es un tema, además de recurrente, que se le hace difícil a muchas personas. Hasta la próxima.

Abraham Valencia
Lima, Perú

2 comentarios: