Está en la página 1de 10

Trucos para Microsoft Office Access

Trucos, microsoft, tips, office, Access

Si eres usuario de Microsoft Office Access te vendrán más que bien


estos trucos, para llevar a cabo varias tareas que podrían traerte dolores
de cabeza. No es muy común encontrar información sobre Access, así
que hay que aprovechar.

Las cosas más sencillas y las más difíciles siempre tienen una forma de
simplificarse o de optimizarse, ahorrando tiempo y esfuerzo. Incluso es
importante conocer los atajos de teclado, que resultan grandes aliados a
la hora de trabajar.

Trucos para Microsoft Office Access

Métodos abreviados:
Es muy probable que al rellenar formularios o tablas haya que introducir el mismo valor de
campo para varios registros consecutivos, como, por ejemplo, introducir nombres de
fechas, provincias, poblaciones, etc. Con la combinación de teclado CTRL + ‘ esta
operación se realiza de forma automática. Otras combinaciones útiles son:
CTRL + + Añade un registro nuevo
CTRL + : Inserta la fecha actual
CTRL + – Elimina el registro actual
CTRL + ; Inserta la hora actual
CTRL + ALT + ESPACIO Inserta el valor predeterminado de un campo
CTRL + INTRO Inserta una nueva línea en un campo
MAYUS + INTRO Combinación que guarda los cambios realizados en el registro actual

Centrar títulos en Access:


Si somos usuarios de esta base de datos de Microsoft, habremos notado, lo tediosa que es la
tarea de centrar títulos ya que el centrado que Access integra es dentro del control. Para
solucionar esto, solo hay que aplicar este pequeño truco, que consiste en hacer igual de
ancho el control y el informe, situando la esquina superior izquierda del control en el
margen izquierdo del informe y ampliar el tamaño del control hasta el extremo contrario. A
continuación escribiremos el título y centraremos con las herramientas de alineación
incluidas en la barra Formato.

Corregir bases de datos corruptas:


En ocasiones, cuando se intenta convertir una base de datos de Access 97 al formato de
Access 2000 aparece un mensaje anunciando que la base de datos está corrupta. Este error
se produce porque no está correctamente compilada o se produjo alguna corrupción antes
de la conversión. Para corregir este problema es necesario abrir la base con su aplicación
original (Access 97).
Si no es posible acceder a otro ordenador se puede instalar en el mismo donde está Office
2000, pero en otro directorio, y seguiremos el siguiente proceso:
Abrir la base de datos en Access 97. Abrir cualquier módulo en modo Vista Diseño. Abrir
el menú Debug, seleccionar Compilar y elegir la opción Guardar todos los módulos.
Después cerramos la base de datos. En el menú Herramientas, buscar las utilidades y elegir
Compactar base de datos y volver a convertir el proyecto a Access 2000.

Cómo controlar líneas en blanco en etiquetas de direcciones:


Las direcciones no son todas iguales y esto puede causar problemas en el diseño de las
etiquetas. Por ejemplo, muchas direcciones requieren una línea para el nombre de la calle y
otras requieren dos. Además, como normalmente se tienen varios campos, cuando hacemos
las etiquetas se crean líneas en blanco entre los campos de la dirección porque muchas
direcciones no tienen rellenos todos sus datos.

Para omitir fácilmente estas líneas en blanco se establece la propiedad Autocomprimible a


Si en cada control. Para hacer esto, abrir el informe en modo diseño, seleccionar el control
y poner la propiedad Autocomprimible a Si.

Hay que tener en cuenta que si el control tiene una etiqueta asociada esta propiedad no
tienen efecto y que el espacio entre controles se seguirá mostrando. Así, para conseguir el
mejor efecto lo mejor es no dejar espacios entre los controles y evitar las etiquetas
asociadas a los controles.

Macros personalizadas:
Al igual que el resto de programas de la suite, Access 2000 acepta macros. A modo de
ejemplo vamos a ver una macro para obtener la letra del NIF a partir del documento
nacional de identidad:

Public Function LetraNIF(dni As Long) As String


Dim tmp As Long
tmp = dni – (Int(dni /23) * 23)
Select Case tmp
Case 0, 23: LetraNIF = “T”
Case 1: LetraNIF = “R”
Case 2: LetraNIF = “W”
Case 3: LetraNIF = “A”
Case 4: LetraNIF = “G”
Case 5: LetraNIF = “M”
Case 6: LetraNIF = “Y”
Case 7: LetraNIF = “F”
Case 8: LetraNIF = “P”
Case 9: LetraNIF = “D”
Case 10: LetraNIF = “X”
Case 11: LetraNIF = “B”
Case 12: LetraNIF = “N”
Case 13: LetraNIF = “J”
Case 14: LetraNIF = “Z”
Case 15: LetraNIF = “S”
Case 16: LetraNIF = “Q”
Case 17: LetraNIF = “V”
Case 18: LetraNIF = “H”
Case 19: LetraNIF = “L”
Case 20: LetraNIF = “C”
Case 21: LetraNIF = “K”
Case 22: LetraNIF = “E”
Case Else: LetraNIF = “Error”
End Select
End Function

Documentar tus programas Access:


Access proporciona un entorno visual de desarrollo con el que se pueden generar potentes
aplicaciones. El problema surge cuando el desarrollo realizado adquiere un volumen
considerable. ¿Cómo controlar y gestionar la cantidad de formularios, informes, macros,
etc., que se han ido generando? Una opción muy interesante y poco conocida de Access es
el documentador. En el menú Herramientas, opción Analizar, se puede acceder al
documentador, que permite obtener información completa y organizada de los objetos que
constituyen la base de datos, de manera que se genera un inventario de todos y cada uno de
los componentes y sus propiedades.

Acelerar las consultas:


Cuando sea posible, restrinje tus consultas a campos indexados. El dispositivo Rushmore de
Access los maneja 50 ó 60 veces más rápido que los campos sin indexar. Además, cuando
realizes una comparación con el operador Como, no utilices una expresión que empiece por
*, porque Rushmore optimizará Como G*., pero no Como *G.P. Y recuerda que aunque
Access soporta hasta 32 índices por tabla, los índices que añaden o editan datos en un
campo pueden ralentizar las operaciones.

Cómo colorear un botón de comando:


No se puede cambiar el color de un botón, pero sí se puede hacer una simulación que
parezca que se ha cambiado de color realizando los siguientes pasos:

1. Agregar un botón de comandos al formulario.


2. Establecer la propiedad Transparente a Sí.
3. Crear un rectángulo del mismo color que el botón y utilizar la herramienta Color de
fondo o Relleno para elegir el color deseado.
4. Establecer la propiedad Efecto Especial a “Con Relieve”.
5. Arrastrar el botón de comando sobre el rectángulo.

Tener un rectángulo bajo el botón de comando no afecta a su funcionamiento. Al poner el


botón transparente desaparece cualquier nombre que se haya puesto, pero esto se puede
corregir incluyendo un control de etiqueta sobre el botón.

Editar el estampado de la hora:


Después de crear un informe con el Asistente para informes, vamos a la ventana de Diseño
del informe, hacemos clic con el botón derecho en la sentencia “=ahora()” en el pie de la
página; éste es el comando que coloca la hora en el informe. Entonces, en la hoja de
propiedades del pie de la página, tecleamos la hora personalizada y texto en la línea
contraria Formato y cerramos la hoja de propiedades.

Abrir formularios con macros:


Este método abreviado consiste en crear una macro que abre un formulario, informe,
consulta, tabla, etc.

1. En la ventana de la base datos, haz clic en la ficha de Macro y selecciona Nuevo.


2. En el menú Ventana, escoje Mosaico.
3. Haz clic en la ficha Informes de la ventana de la base de datos y arrastra el informe
que quieres que la macro abra hasta una fila de la columna Acción de la ventana
Macro.
4. Cierra la ventana, haz clic en Sí para guardar la macro y asígnale un nombre.

Personaliza Access 97:


Si tienes una aplicación que empleas habitualmente, lo más normal es haber creado un
acceso directo que apunte a nombre.mdb (o nombre.mde) de nuestra aplicación,
simplemente para ahorrarnos abrirla dentro de Access.

Mediante las propiedades de inicio de la base de datos, se puede cambiar tanto el título
como el icono de la aplicación, obteniendo así una cierta similitud con cualquier otro
programa realizado con lenguajes de programación más sofisticados, como sería Visual
Basic, Visual C++ o cualquier otro compilador de Windows que se nos ocurra.

Asimismo, nos independizamos un poco de lo que sería Access en sí para conseguir un


resultado mucho más profesional. No obstante, aún queda un pequeño detalle que nos
delata: no es otro que la pantalla de inicio que muestra Access cuando arranca (esa en la
que pone Microsoft Access 97).

Si queremos que Microsoft Access muestre un dibujo que nosotros hayamos diseñado, con
el logo de nuestra empresa o el nombre de nuestra aplicación, por ejemplo, simplemente
tenemos que crear un BMP con el mismo nombre que el nombre.mdb y ubicarlo en el
mismo directorio.

Por otro lado en el acceso directo al (nombre.mdb), tenemos que especificar como
directorio, el mismo en el que se encuentre nuestra aplicación. Así, cuando se inicie ese
MDB, aparecerá nuestra imagen y, de esta forma, habremos conseguido un resultado
mucho más personal y que, aparentemente, no se diferencia de cualquier programa
comercial.

Imprimir el registro actual:


Imprimir el registro actual no debería resultar pesado. Y no lo será una vez que añadas este
botón a tus formularios. Ya no tendrás que merodear con el ratón por los menús Editar y
Archivo o por la opción Registros seleccionados en el cuadro de diálogo Imprimir.
1. Abre el formulario y escoje Diseño del formulario del menú Ver. Asegúrate de
presionar el botón de control de asistentes en la caja de herramientas.
2. Haz clic sobre el botón Comando en la caja de herramientas.
3. Cuando hagas clic en el lugar en el que quieras el nuevo botón, el asistente del
botón de comando te guiará. En la lista Categorías, haz clic sobre Operaciones con
registros.
4. En la lista Acción, haz clic sobre Imprimir registro.
5. Pulsa el botón Siguiente y añade texto o una imagen al botón.
6. Haz clic sobre Finalizar y después selecciona Formulario del menú Ver.
7. Prueba ahora el nuevo botón.

Numeración correlativa automática sin campo autonumérico:


Supongamos una tabla llamada Clientes con varios campos, de los cuales uno es numérico
entero largo llamado NumCliente, estableciendo que el campo sea indexado sin duplicados
o bien clave principal.

En el evento Al activar registro del formulario de entrada de datos para esa tabla, insertar el
siguiente código:

On Error GoTo err_Form_Current


If [NumCliente] < 1 Then
[NumCliente] = DMax(“NumCliente”, “Clientes”) + 1
End If
exit_Form_Current:
Exit Sub
err_Form_Current:
If Err = 94 Then ‘Uso no válido de Null
Resume Next
Else
MsgBox Error$
Resume exit_Form_Current
End If

En la propiedad Punto de tabulación del campo NumCliente, dentro de formulario,


establecer su valor a No, ya que será un campo que no hay que rellenar manualmente.

Ha sido absolutamente necesario incluir las líneas que hacen referencia al error nº 94 (uso
no válido de Null) debido a que la primera vez que se accede al formulario para introducir
datos, se producirá dicho error al no existir registros.

Con esas líneas de código se evita que aparezca dicho error, ya que la línea On error goto…
envía el flujo de la ejecución a la parte del código donde se detecta y se envía de nuevo el
flujo de ejecución a la línea siguiente, excepto en el caso de producirse un error diferente,
en cuyo caso se mostraría el error producido gracias a las líneas que siguen a Else.

Calcular la edad exacta:


edad:ent(Ahora()-[FECHA NACIMIENTO]/365)
Crear una suma continua en un formulario:
Para crear una suma continua en un formulario, la tabla sobre la que está basada debe
contener al menos un campo autonumérico (en las versiones 1.x o 2.0, un campo contador).
Si la tabla no contiene ese campo, se puede abrir la tabla en modo diseño y crear el campo.

El siguiente ejemplo utiliza una tabla que contiene tres campos: Contador (Campo
Autonumérico), Cantidad (Campo numérico) y Total (Campo Numérico). La tabla se llama
Prueba.

Crear un formulario nuevo basado en la tabla Prueba.


Formulario: Formulario1
OrigendelRegistro: Prueba
Cuadro de Texto: Contador
Origen del Control: Contador
Cuadro de Texto: Cantidad
Origen del Control: Cantidad
Cuadro de Texto: Total
Origen del control: =Dsum(“[Cantidad]“;”Prueba”;”[Contador]<=Forms![Formulario1]!
[Contador]“)

La función Dsum calcula la suma del campo Cantidad en todos los registros que tengan el
contador menor o igual que el registro activo. Esta es la razón por la que se necesita un
campo autonumérico.

Cuadro combinado que añade el valor Todos a una lista:


Cuando se prepara un formulario con un cuadro combinado cuyo valor luego se usa como
criterio en una consulta, es posible que convenga añadir a los valores de la lista el texto
Todos, en cuyo caso la consulta no tendrá criterio.

Conseguir este propósito requiere resolver dos problemas; por un lado, lograr que el cuadro
combinado muestre también la palabra Todos y, por otro, que la consulte funcione
correctamente. Para el primer problema partimos de que el tipo de origen de fila del cuadro
combinado es Tabla. Consulta, ya que si fuera Lista de valores sólo tendríamos que añadir
dicho valor.

Necesitamos crear una consulta de unión que nos permita asociar a los elementos de la
tabla el texto deseado. Este tipo de consulta sólo se puede crear en la pantalla de SQL y su
sintaxis sería:

SELECT Campo FROM Tabla UNION SELECT ‘(Todos)’ FROM Tabla

Aunque ‘(Todos)’ es una constante, necesita un origen de datos, pero puede usarse sin
problemas la misma tabla.

Veamos ahora cómo solucionar el tema de la consulta. Para que el criterio funcione bien
usaremos la siguiente expresión con la función SiImp:
SiImp(Formularios![NombreFormulario]![NombreCuadroCombinado] = ‘(Todos)';
[NombreCampo];
Formularios![NombreFormulario]![NombreCuadroCombinado])

Con esta sintaxis se consigue que al seleccionar Todos el criterio sea el propio nombre del
campo, lo cual da como resultado todos los registros.

Demasiados campos en una tabla:


Un problema bastante inusual, pero que puede provocar problemas al diseñar una tabla, es
que Access muestre el mensaje de que hay demasiados campos, impidiendo entonces
grabar el diseño.

De hecho, Access permite que una tabla pueda tener un máximo de 255 campos, aunque
este tope es más que suficiente, en algunos casos, normalmente al modificar una estructura
de tabla, podemos encontrarnos con el mensaje de error mencionado, aunque no hayamos
llegado al límite descrito.

El motivo es que Access tiene un contador interno del número de campos que llevamos en
la tabla. Al añadir, mover o copiar campos se va incrementando. Sin embargo, cuando
borramos campos el contador no disminuye. Si el contador llega a 255 aparece el error y no
podemos guardar los cambios en la estructura.

Para resolverlo lo único que hay que hacer es compactar la base de datos mediante
Herramientas-Utilidades de la base de datos-Compactar y reparar la base de datos, ya que la
compactación actualiza, entre otros temas, ese contador interno relativo al número de
campos.

Organizar los objetos de la base de datos por temas:


La ventana de la base de datos de Access organiza los objetos por tipos. Sin embargo, es
posible que en aplicaciones grandes convenga organizar los objetos por temas. Este
problema se resuelve en Access 2000 mediante el uso de la barra Grupos, que aparece en la
zona izquierda de la ventana de la base de datos.

Puede crearse un grupo mediante el menú de contexto sobre cualquier objeto y luego crear
accesos directos a los objetos deseados. Basta con seleccionar el objeto y, en el menú de
contexto, seleccionar la opción Agregar al grupo e indicar el grupo apropiado.

Numeración correlativa sin campo Autonumérico:


if me.codigocliente < 1 then
me.codigocliente=DMax(“codigocliente”,”Nombretabla”)+1
end if

Trabajar con campos autonuméricos:


Dos de las necesidades más típicas con campos autonuméricos son: volver a empezar en 1
después de ciertas pruebas o bien conseguir que empiecen a numerar por un valor
determinado.
En el primer caso basta con borrar todos los registros de la tabla y compactar la base de
datos mediante Herramientas-Utilidades de la base de datos-Compactar y reparar la base de
datos. El segundo tema es un poco más complicado.

Supongamos que ya tenemos la tabla con el campo autonumérico creada. A continuación


creamos una tabla auxiliar con un campo de tipo Numérico Entero largo, a la que
añadiremos un registro con el valor por el que deseamos empezar a numerar menos uno.

Seguidamente crearemos una consulta de datos anexados con la tabla auxiliar y añadiremos
el registro a la tabla que tiene el campo autonumérico. Tras ejecutar la consulta podemos
borrarla, igual que la tabla auxiliar.

Ya sólo queda eliminar el registro auxiliar de la tabla, con lo que los registros siguientes
continuarán la autonumeración a partir del valor anterior.

Cambiar el color de un control cuando tiene el foco:


Ponemos como color del fondo del control el que quieras que te salga al recibir el enfoque
y luego poner como estilo del fondo invisible. Al recibir el foco se verá del color del fondo
y si no tiene el foco se verá transparente.

Formato condicional:
Con Access 2000 el formato condicional ya no es un problema, ya que pueden definirse
reglas de formato para cuadros de texto y otros controles en formularios e informes.

Para ello debe usarse el comando Formato condicional del menú Formato, lo cual permite
definir el color de la fuente, su tamaño, el color de fondo de los controles y otras
propiedades visuales que proporcionan información complementaria a los usuarios.

Añadir un botón a un formulario que permita eliminar el registro activo:


A nivel de usuario existe la combinación de teclas Ctrl + – (guión) para eliminar el registro
activo en un formulario. Una solución más cómoda es añadir al formulario un botón y
asociar el siguiente código al evento Al hacer clic:

If Me.NewRecord Then
Me.Undo
Else
Me.RecordsetClone.Bookmark =
Me.Bookmark
Me.RecordsetClone.Delete
End If

Es necesario establecer una condición, ya que el registro a eliminar puede ser uno que se
esté creando en ese momento. La propiedad NewRecord devuelve verdadero si estamos en
esta situación, en cuyo caso es suficiente con aplicar el método Undo (deshacer).
Sin embargo, si se trata de un registro existente es necesario aplicar el método Delete. El
problema es que no se puede aplicar directamente al objeto Me. Por tanto, la solución es
aplicárselo a RecordsetClone, una vez situado el registro activo en el mismo que en el
formulario.

Cómo mejorar el rendimiento de la base de datos:


Una de las mejores maneras de mejorar el rendimiento y la integridad de la base de datos es
repararla y compactarla periódicamente. Al compactar una base de datos, se organiza de
nuevo el archivo y le permite volver a obtener el espacio de los registros eliminados.

La opción Reparar permite reparar una base de datos dañada, lo que ocurre en la mayoría
de los casos cuando Access se cierra inesperadamente antes de guardar la base de datos. A
veces, una base de datos también se puede dañar sin que Access se dé cuenta. Si la base de
datos se comporta de manera extraña, es posible que sea necesario repararla.

Cuando repare una base de datos, también debe compactarla después. Para reparar la base
de datos actual, seleccione Utilidades de la base de datos/Reparar base de datos en el menú
Herramientas. Access supone que usted desea reparar la base de datos abierta actualmente y
ejecuta el procedimiento de reparación.

Cuando termina, vuelve a la ventana Base de datos. De igual manera, si selecciona la


opción para compactar mientras está abierta la base de datos, Access compactará sólo esa
base de datos. Si desea compactar otra base de datos o crear una copia de seguridad de la
actual, cierre todas las bases de datos y seleccione Compactar base de datos en el menú
Utilidades de la base de datos.

A continuación, elija la base de datos que desea compactar y, en el cuadro de diálogo


Compactar la base de datos en, seleccione una base de datos existente o escriba un nuevo
nombre para la compactación.

Campos numéricos decimales que no aparecen cuando su valor es 0:


=iif([NombreCampo]<>0;[NombreCampo]) y en formato: estándar, nº decimales
automático

Registrar Controles Active X:


Desde el ejecutar del menu INICIO escribir lo siguiente:
regsvr32.exe\windows\system\nombrecontrol.ocx – Para Windows 95
regsvr32.exe\windows\system32\nombrecontrol.ocx – Para NT

Colocar un reloj en un formulario:


Se puede hacer de dos maneras, con un campo de texto o con una etiqueta. Vamos a hacerlo
con una etiqueta a la que le llamamos lblHora. En el formulario, en la propiedad Al
intervalo del cronómetro escribimos 1000. En el código de evento AlCronómetro del
formulario escribimos me.lblHora.caption=Time.
Limitar el número de registros en una tabla:
If DCount (“*”,”Reservas”,”FechaReserva=Forms!Reservas!Fecha”)>50 then
msgbox “Ya hay 50 registros”
end if

También podría gustarte