| |
Trucos Access
3.- Consultas
Cada vez que se abre y se cierra una base de datos, Access modifica
siempre la fecha del archivo MDB, lo cual produce una sensación
de haberse modificado, aunque en realidad no se haya producido ningún
cambio ni en su estructura ni en sus datos. Esto puede llevar a pensar
que cierta base de datos está más actualizada que otra
que se haya guardado en otro disco, por ejemplo. Para paliar un poco
este efecto, es posible crear una consulta de creación de tablas
que diga siempre cuáles son los elementos más recientemente
creados o modificados con su fecha y hora. Los pasos a seguir son los
siguientes:
· Abrir una base de datos y acceder a la ficha Consultas, creando
una consulta nueva en vista diseño.
· Cuando aparezca la ventana Mostrar tabla, cerrarla sin elegir
ninguna.
· Elegir del menú Ver/Vista SQL y escribir lo siguiente
en la ventana que aparece:
SELECT MSysObjects.Name, MSysObjects.DateUpdate
INTO tmakModifiedObjects
FROM MSysObjects
WHERE (((MSysObjects.Name) Not Like "_*" And (MSysObjects.Name)
Not Like "~*" And (MSysObjects.Name) Not Like "MSys*")
AND ((MSysObjects.DateUpdate)>Date()-14) AND ((MSysObjects.Type)
In (1,-32764,-32768,5,-32761,-32766)))
ORDER BY MSysObjects.Name, MSysObjects.DateUpdate DESC;
· Cerrar la ventana SQL y responder Sí a la pregunta de
guardar los cambios, dando un nombre para la consulta en el cuadro de
diálogo que aparecerá a continuación.
Cuando se ejecute la consulta (simplemente haciendo doble clic sobre
su nombre), Access solicitará confirmación por 3 veces
y creará una nueva tabla llamada tmakModifiedObjects, donde estarán
los elementos más recientemente modificados.
a) En campos numéricos:
Una consulta de actualización sirve para modificar el valor que
tiene un campo en todos los registros de una tabla. Es, por tanto, una
operación muy potente a la vez que peligrosa. La forma de llevarla
a cabo es la que se expone a continuación.
Se accede a crear una consulta normal, pero una vez en la cuadrícula
colocados los campos oportunos, elegir Consulta/Consulta de actualización,
lo cual hace aparecer una fila con la denominación Actualizar
a en sustitución de las filas denominadas Orden y Criterios,
que son las que normalmente aparecen por defecto para las consultas
de selección habituales.
Supongamos que hay un campo numérico en la tabla empleada llamado
Precio y que se pretende modificar elevándolo un 10 %, con lo
cual la operación matemática se reduce a multiplicar el
precio existente por 1,10. Para ello, en la nueva fila Actualizar a
hay que escribir:
[Precio]*1,10
b) En campos de tipo texto:
Supongamos que hay una tabla que contiene un campo Teléfono al
cual hay que agregar un prefijo más (por ejemplo, un 1). En la
fila Actualizar a consignar lo siguiente:
"1"&[Teléfono]
Con esto se consigue actualizar todos los registros de la tabla anteponiendo
un 1 delante del valor del campo. El símbolo & concatena
los caracteres.
Más profesional queda todo si en un formulario se coloca un botón
que ejecute la consulta de actualización. En el asistente para
botones hay que elegir Otras en el cuadro Categorías y Ejecutar
consulta en el cuadro Acciones. Luego sólo hay que seguir el
asistente hasta finalizar.
Otra aplicación que tienen las consultas de actualización
es cuando se crea un campo adicional en una tabla ya existente cuyo
contenido es siempre el mismo. El campo recién creado estará
vacío y con una consulta de actualización se rellenará
automáticamente.
Para desactivar los mensajes de confirmación, ver el truco nº
3.3.
Al ejecutar la consulta aparece por defecto un mensaje para confirmar
la actualización de datos, pero se puede obviar eligiendo Herramientas/Opciones,
y dentro de la ficha Modificar/Buscar, desmarcar la casilla Consultas
de acción que hay dentro del apartado Confirmar.
El resultado es que todos los precios de la tabla original se verán
modificados de un plumazo.
Sin embargo, cuando se ejecuta la consulta desde un formulario, queda
más profesional si no se muestran esos mensajes. Para ello, se
puede añadir la siguiente línea de código justo
antes de las que se hayan generado para el botón:
Dcmd.SetWarnings False
De esta forma, la consulta se ejecuta sin pedir confirmaciones. No obstante,
es recomendable volver a activar las confirmaciones después de
la ejecución de esas consultas mediante esta otra línea
de código:
Dcmd.SetWarnings True
Al crear una consulta, los nombres de los campos de la tabla o tablas
que son origen de los datos son mantenidos. Sin embargo, pueden cambiarse
por otra denominación, lo cual puede venir muy bien para ahorrar
tiempo al confeccionar formularios e informes que se basen en esa consulta,
ya que los nuevos nombres serán los que se tengan en cuenta.
Para llevar a cabo el renombramiento hay que seguir la siguiente nomenclatura
en la fila Campo de la cuadrícula de la consulta:
Nombre nuevo: [Nombre en la tabla]
Si, por ejemplo, el nombre en la tabla es Telef y se desea que aparezca
Teléfono, habría que escribir:
Teléfono: [Telef]
|