.
Si estás usando macros, o necesitas modificar alguna de ellas para automatizar tu libro de Excel seguramente te es necesario saber seleccionar o referenciar celdas, en FORMAS DE SELECCIONAR O REFERENCIAR CELDAS CON VBA (Spanish Edition) encontrarás una excelente ayuda; si trabajas con fechas en Excel, fíjate en el siguiente link que te puede ser de utilidad FORMATOS Y FUNCIONES DE FECHA Y HORA DE MICROSOFT EXCEL (Spanish Edition)
Antes de profundizar te recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
Desde el link final podrás descargar el ejemplo que conecta Excel con Access y cientos de ejemplos totalmente GRATUITO, recordando que si este o alguno de los ejemplos publicados te fueron de utilidad y puedes, aporta a seguir manteniendo esta página.
Como había mencionado más arriba estas son algunas de las sentencias SQL que se pueden utilizar en Excel al trabajar con Access, en las siguientes entregas mostraré como filtrar datos trabajando con el comando SELECT y como insertar o agregar datos, modificar y eliminar datos.
Antes que nada es preciso definir que es SQL, bien SQL es un lenguaje de consulta estructurado, se podría decir que es un lenguaje de base de datos normalizado que es utilizado por el motor de base de datos de Microsoft Jet.
Se utiliza SQL para crear objetos QueryDef que son el argumento de origen de datos del método OpenRecorsSet y como la propiedad RecordSource de un control de datos, también es usado para crear y manipular directamente una base de datos con el método Execute o crear consultas SQL de paso para manipular bases de datos remotas.
Que compone el lenguaje SQL, la respuesta es un conjunto de comandos, cláusulas, operadores y funciones de agregado, que se combinan entre si en las denominadas sentencias SQL para poder manipular una base de datos, es decir crear, actualizar o consultar la misma.
comandos SQL los denominados DLL y DML los permiten crear una nueva base de
datos, definir campos e índices; los DLL permiten generar consultas para
filtrar y extraer datos de la base.
COMANDOS DLL | |
Comando |
Descripción |
CREATE |
Crear nuevas tablas, campos e índices. |
DROP |
Eliminar tablas e índices. |
ALTER |
Modifica tablas agregando campos o cambiando la definición. |
COMANDOS DML | |
Comando |
Descripción |
SELECT |
Sirve para consultar registros que cumplan un criterio determinado. |
INSERT |
Sirve para cargar lotes de datos en la base de datos en una única operación. |
UPDATE |
Sirve para modificar los valores de los campos y registros especificados. |
DELETE |
Utilizado para eliminar registros de una tabla de una base de datos. |
que se utilizan para definir que datos se desea seleccionar o manejar.
Cláusula |
Descripción |
FROM |
Determina la tabla de la cual se van a seleccionar los registros. |
WHERE |
Sirve para especificar que registros se deben seleccionar. |
GROUP BY |
Utilizada para separar los registros seleccionados en grupos específicos. |
HAVING |
Utilizada para expresar la condición que debe satisfacer cada grupo. |
ORDER BY |
Sirve para ordenar registros de acuerdo a un criterio seleccionado. |
OPERADORES
LÓGICOS
siguientes:
Operador |
Descripción |
AND |
Es el «y» lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. |
OR |
Es el «y» ó «o» lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. |
NOT |
Negación lógica. Devuelve el valor contrario de la expresión. |
XOR |
Es el «o» lógico devuelve los registros que cumplan una u otra condición pero no amas condiciones como en el caso de or. |
EQV |
Devuelve verdadero si dos expresiones son verdaderas o son las dos falsas. |
IMP |
Compara dos objetos, también es denominada IS |
DE COMPARACIÓN
dos o más expresiones.
Operador |
Descripción |
< |
Menor que |
> |
Mayor que |
<> |
Distinto de |
<= |
Menor ó Igual que |
>= |
Mayor ó Igual que |
= |
Igual que |
BETWEEN |
Utilizado para especificar un intervalo de valores. |
LIKE |
Utilizado en la comparación de un modelo |
IN |
Utilizado para especificar registros de una base de datos |
DE AGREGADO
se usan dentro de una cláusula SELECT en grupos de registros para devolver un
único valor que se aplica al grupo de registros a los que se refiere.
Función |
Descripción |
AVG |
Calcula el promedio de los valores de un campo determinado |
COUNT |
Devuelve el número de registros de la selección |
SUM |
Suma de todos los valores de un campo determinado |
MAX |
Devuelve el valor más alto de un campo especificado |
MIN |
Devuelve el valor más bajo de un campo especificado |
sirve para se debe incluir o debe ir entre la cláusula y el primer nombre del
campo del cual se desean recuperar los datos, a final del tutorial en el título
Subconsultas, se usan, los predicados ANY y SOME, entre los predicados aparte
de los mencionados, tenemos:
Predicado |
Descripción |
ALL |
Devuelve todos los campos de la tabla |
TOP |
Devuelve un determinado número de registros de la tabla |
ANY |
Hace referencia a alguno de los registros de la tabla |
SOME |
Hace referencia a alguno de los registros de la tabla |
DISTINCT |
Omite los registros cuyos campos seleccionados coincidan totalmente |
DISTINCTROW |
Omite los registros duplicados basándose en la totalidad del registro y no sólo en los campos seleccionados. |
Tipo de coincidencia |
Modelo Planteado |
Coincide |
No coincide |
Varios caracteres |
‘a*a’ |
‘aa’, ‘aBa’, ‘aBBBa’ |
‘aBC’ |
Carácter especial |
‘a[*]a’ |
‘a*a’ |
‘aaa’ |
Varios caracteres |
‘ab*’ |
‘abcdefg’, ‘abc’ |
‘cab’, ‘aab’ |
Un solo carácter |
‘a?a’ |
‘aaa’, ‘a3a’, ‘aBa’ |
‘aBBBa’ |
Un solo dígito |
‘a#a’ |
‘a0a’, ‘a1a’, ‘a2a’ |
‘aaa’, ‘a10a’ |
Rango de caracteres |
‘[a-z]’ |
‘f’, ‘p’, ‘j’ |
‘2’, ‘&’ |
Fuera de un rango |
‘[!a-z]’ |
‘9’, ‘&’, ‘%’ |
‘b’, ‘a’ |
Distinto de un dígito |
‘[!0-9]’ |
‘A’, ‘a’, ‘&’, ‘~’ |
‘0’, ‘1’, ‘9’ |
Combinada |
‘a[!b-m]#’ |
‘An9’, ‘az0’, ‘a99’ |
‘abc’, ‘aj0’ |
TIPO DE
DATOS
que se manejan con SQL son trece tipos denominados primarios y varios sinónimos
que son reconocidos por dichos tipos de datos, en el cuadro que sigue se
exponen los datos primarios y en el que sigue los sinónimos que reconoce.
Tipo de Datos |
Longitud |
Descripción |
BINARY |
1 byte |
Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. |
BIT |
1 byte |
Valores Si/No ó True/False |
BYTE |
1 byte |
Un valor entero entre 0 y 255. |
COUNTER |
4 bytes |
Un número incrementado automáticamente (de tipo Long) |
CURRENCY |
8 bytes |
Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. |
DATETIME |
8 bytes |
Un valor de fecha u hora entre los años 100 y 9999. |
SINGLE |
4 bytes |
Un valor en punto flotante de precisión simple con un rango de -3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10-45 a 3.402823*1038 para valores positivos, y 0. |
DOUBLE |
8 bytes |
Un valor en punto flotante de doble precisión con un rango de -1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0. |
SHORT |
2 bytes |
Un entero corto entre -32,768 y 32,767. |
LONG |
4 bytes |
Un entero largo entre -2,147,483,648 y 2,147,483,647. |
LONGTEXT |
1 byte por carácter |
De cero a un máximo de 1.2 gigabytes. |
LONGBINARY |
Según se necesite |
De cero 1 gigabyte. Utilizado para objetos OLE. |
TEXT |
1 byte por caracter |
De cero a 255 caracteres. |
tipos de datos sinónimos:
Tipo de Dato |
Sinónimos |
BINARY |
VARBINARY |
BIT |
BOOLEAN
LOGICAL
LOGICAL1
YESNO |
BYTE |
INTEGER1 |
COUNTER |
AUTOINCREMENT |
CURRENCY |
MONEY |
DATETIME |
DATE
TIME
TIMESTAMP |
SINGLE |
FLOAT4
IEEESINGLE
REAL |
DOUBLE |
FLOAT
FLOAT8
IEEEDOUBLE
NUMBER
NUMERIC |
SHORT |
INTEGER2
SMALLINT |
LONG |
INT
INTEGER
INTEGER4 |
LONGBINARY |
GENERAL
OLEOBJECT |
LONGTEXT |
LONGCHAR
MEMO
NOTE |
TEXT |
ALPHANUMERIC
CHAR
CHARACTER
STRING
VARCHAR |
VARIANT (No Admitido) |
VALUE |
FROM
tiene mayores análisis, determina en que tabla se buscarán o harán las distintas
operaciones.
El siguiente ejemplo permite seleccionar todos los campos de la tabla Ventas.
Ventas
Esta sentencia SQL selecciona el campo Cliente de la tabla Ventas
ha visto a lo largo de los ejemplos que acá se han expuesto, permite determinar
que registros se van a filtrar o recuperar; en otras palabras, determina que
registros de la tabla seleccionada con la cláusula FROM deberán aparecer o
serán el resultado de la instrucción SELECT.
opcional, si no se utiliza la instrucción SELECT devolverá todos los registros
de los campos especificados algunos ejemplos aclararán el panorama.
los campos cuyos registros del campo cliente sean igual a Dayra Col y Tomy Lee.
OR Cliente = ‘Tomy Lee’
campo cliente de la tabla ventas cuando venta sea superior a 450000
los campos cuando los registros del campo cliente se encuentren entre Day y
Tom.
AND ‘Tom’
GROUP BY
BY o agrupamiento de registros combina o une registros con valores idénticos en
una lista de campos especificados, en un solo
registro, obteniéndose una sumatoria si se incluyen en la
sentencia SQL funciones de agregado como sumar o contar; la sintaxis de la
cláusula es:
Tabla WHERE criterio GROUP BY campos del grupo.
BY no es obligatoria, si no existe una función SQL agregada en la instrucción,
los valores resúmenes se omiten; los valores nulos son agrupados por GROUP BY,
pero no se evalúan en las funciones SQL agregadas; se puede
agrupar cualquier campo de la tabla indicada por la cláusula FROM, excepto
campos tipo memo y objetos OLE.
cláusula WHERE se filtran los datos que se requieren agrupar; también se puede
usar la cláusula HAVING para filtrar registros una vez agrupados los datos con
GROUP BY.
lista GROUP BY puede referirse a cualquier campo de la tabla FROM, incluso si
el campo no está incluido en la instrucción SELECT siempre y cuando SELECT
contenga una función SQL agregada.
ejemplo despejará algunas dudas; la sentencia SQL solicita seleccionar los
datos del campo Fecha y Cliente, sumando el campo Venta de la tabla Ventas,
cuando su estado sea finalizado, agrupando las ventas por fecha.
Cliente, Estado SUM (Venta) FROM Ventas WHERE Estado=
‘Finalizado’ GROUP BY Fecha
HAVING
HAVING es similar a la cláusula WHERE, la diferencia reside en que permite
filtrar datos ya agrupados por la cláusula GROUP BY, es decir muestra los
registros ya agrupados y que cumplan los criterios establecidos en la cláusula
HAVING.
sentencia SQL expresa que se deben mostrar los campos Fecha, Cliente y sumar
(Venta) de la tabla Ventas, cuando su estado sea finalizado, agrupando datos
por Fecha, una vez agrupados mostrar las ventas superiores a 60000 de los
clientes Dayra Col y Tomy Lee.
Cliente, Estado, SUM (Venta) FROM Ventas WHERE Estado=
‘Finalizado’ GROUP BY Fecha HAVING SUM (Venta) >600000 AND Cliente =
‘Dayra Col’ OR Cliente = ‘Tomy Lee’
ORDER BY
una consulta muchas veces se necesita ordenar registros y especificar el orden
en que se requiere sean devuelto los datos de las distintas tablas ello es
posible con la cláusula ORDER BY, siguiendo el ejemplo anterior si se requiere
que los datos sean devueltos ordenados por Cliente y luego por fecha, la
consulta SQL sería la siguiente:
Cliente, Estado, SUM (Venta) FROM Ventas WHERE Estado=
‘Finalizado’ GROUP BY Fecha HAVING SUM (Venta) >600000 AND Cliente =
‘Dayra Col’ OR Cliente = ‘Tomy Lee’ ORDER BY Cliente, Fecha
sentencia SQL anterior se ordena por más de un campos, los campos deben ir
separados por coma (,); se puede especificar el orden que se requieres es decir
Ascendente o Descendente, siempre el orden por defecto es Ascendente; la
cláusula del ejemplo quedaría así, en caso que quisiéramos ordenar Cliente en
forma Descendente y Fecha en forma Ascendente:
Cliente, Estado, SUM (Venta) FROM Ventas WHERE Estado=
‘Finalizado’ GROUP BY Fecha HAVING SUM (Venta) >600000 AND Cliente =
‘Dayra Col’ OR Cliente = ‘Tomy Lee’ ORDER BY Cliente DESC, Fecha ASC
menos complicado donde solo se solicita ordenar se muestra a continuación:
SELECT Fecha, Cliente, Estado, Venta FROM Ventas ORDER BY Cliente
SELECT Fecha, Cliente, Estado, Venta FROM Ventas ORDER
BY Cliente DESC
Cliente, Estado, Venta FROM Ventas ORDER BY Cliente DESC, Fecha
ASC
Continua en parte I Principales sentencias SQL
Continua en parte II Seleccionar Datos Comando SELECT
Continua en parte III Insertar, actualizar y eliminar Datos Comando INSERT, UPDATE DELETE
.