Trucos para Microsoft Office Access
Trucos para Microsoft Office Access
Trucos para Microsoft Office Access
Mtodos 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 combinacin de teclado CTRL + esta operacin se realiza de forma automtica. Otras combinaciones tiles son: CTRL + + Aade 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 lnea en un campo MAYUS + INTRO Combinacin que guarda los cambios realizados en el registro actual Centrar ttulos en Access: Si somos usuarios de esta base de datos de Microsoft, habremos notado, lo tediosa que es la tarea de centrar ttulos ya que el centrado que Access integra es dentro del control. Para solucionar esto, solo hay que aplicar este pequeo 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 tamao del control hasta el extremo contrario. A continuacin escribiremos el ttulo y centraremos con las herramientas de alineacin 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 corrupcin antes de la conversin. Para corregir este problema es necesario abrir la base con su aplicacin 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 mdulo en modo Vista Diseo. Abrir el men Debug, seleccionar Compilar y elegir la opcin Guardar todos los mdulos. Despus 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. Cmo controlar lneas en blanco en etiquetas de direcciones: Las direcciones no son todas iguales y esto puede causar problemas en el diseo de las etiquetas. Por ejemplo, muchas direcciones requieren una lnea para el nombre de la calle y otras requieren dos. Adems, como normalmente se tienen varios
campos, cuando hacemos las etiquetas se crean lneas en blanco entre los campos de la direccin porque muchas direcciones no tienen rellenos todos sus datos. Para omitir fcilmente estas lneas en blanco se establece la propiedad Autocomprimible a Si en cada control. Para hacer esto, abrir el informe en modo diseo, 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. Cmo controlar y gestionar la cantidad de formularios, informes, macros, etc., que se han ido generando? Una opcin muy interesante y poco conocida de Access es el documentador. En el men Herramientas, opcin Analizar, se puede acceder al documentador, que permite obtener informacin 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 ms rpido que los campos sin indexar. Adems, cuando realizes una comparacin con el operador Como, no utilices una expresin 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 aaden o editan datos en un campo pueden ralentizar las operaciones. Cmo colorear un botn de comando: No se puede cambiar el color de un botn, pero s se puede hacer una simulacin que parezca que se ha cambiado de color realizando los siguientes pasos: 1. Agregar un botn de comandos al formulario. 2. Establecer la propiedad Transparente a S. 3. Crear un rectngulo del mismo color que el botn 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 botn de comando sobre el rectngulo. Tener un rectngulo bajo el botn de comando no afecta a su funcionamiento. Al poner el botn transparente desaparece cualquier nombre que se haya puesto, pero esto se puede corregir incluyendo un control de etiqueta sobre el botn. Editar el estampado de la hora: Despus de crear un informe con el Asistente para informes, vamos a la ventana de Diseo del informe, hacemos clic con el botn derecho en la sentencia =ahora() en el pie de la pgina; ste es el comando que coloca la hora en el informe. Entonces, en la hoja de propiedades del pie de la pgina, tecleamos la hora personalizada y texto en la lnea contraria Formato y cerramos la hoja de propiedades. Abrir formularios con macros: Este mtodo abreviado consiste en crear una macro que abre un formulario, informe, consulta, tabla, etc.
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 Accin de la ventana Macro. 4. Cierra la ventana, haz clic en S para guardar la macro y asgnale un nombre. Personaliza Access 97: Si tienes una aplicacin que empleas habitualmente, lo ms normal es haber creado un acceso directo que apunte a nombre.mdb (o nombre.mde) de nuestra aplicacin, simplemente para ahorrarnos abrirla dentro de Access. Mediante las propiedades de inicio de la base de datos, se puede cambiar tanto el ttulo como el icono de la aplicacin, obteniendo as una cierta similitud con cualquier otro programa realizado con lenguajes de programacin ms sofisticados, como sera Visual Basic, Visual C++ o cualquier otro compilador de Windows que se nos ocurra. Asimismo, nos independizamos un poco de lo que sera Access en s para conseguir un resultado mucho ms profesional. No obstante, an queda un pequeo 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 diseado, con el logo de nuestra empresa o el nombre de nuestra aplicacin, 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 aplicacin. As, cuando se inicie ese MDB, aparecer nuestra imagen y, de esta forma, habremos conseguido un resultado mucho ms personal y que, aparentemente, no se diferencia de cualquier programa comercial. Imprimir el registro actual: Imprimir el registro actual no debera resultar pesado. Y no lo ser una vez que aadas este botn a tus formularios. Ya no tendrs que merodear con el ratn por los mens Editar y Archivo o por la opcin Registros seleccionados en el cuadro de dilogo Imprimir. 1. Abre el formulario y escoje Diseo del formulario del men Ver. Asegrate de presionar el botn de control de asistentes en la caja de herramientas. 2. Haz clic sobre el botn Comando en la caja de herramientas. 3. Cuando hagas clic en el lugar en el que quieras el nuevo botn, el asistente del botn de comando te guiar. En la lista Categoras, haz clic sobre Operaciones con registros. 4. En la lista Accin, haz clic sobre Imprimir registro. 5. Pulsa el botn Siguiente y aade texto o una imagen al botn.
1.
6. Haz clic sobre Finalizar y despus selecciona Formulario del men Ver. 7. Prueba ahora el nuevo botn. Numeracin correlativa automtica sin campo autonumrico: Supongamos una tabla llamada Clientes con varios campos, de los cuales uno es numrico 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 cdigo: 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 vlido de Null Resume Next Else MsgBox Error$ Resume exit_Form_Current End If En la propiedad Punto de tabulacin 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 lneas que hacen referencia al error n 94 (uso no vlido 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 lneas de cdigo se evita que aparezca dicho error, ya que la lnea On error goto enva el flujo de la ejecucin a la parte del cdigo donde se detecta y se enva de nuevo el flujo de ejecucin a la lnea siguiente, excepto en el caso de producirse un error diferente, en cuyo caso se mostrara el error producido gracias a las lneas 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 autonumrico (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 diseo y crear el campo. El siguiente ejemplo utiliza una tabla que contiene tres campos: Contador (Campo Autonumrico), Cantidad (Campo numrico) y Total (Campo Numrico). 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 funcin 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 razn por la que se necesita un campo autonumrico. Cuadro combinado que aade 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 aadir a los valores de la lista el texto Todos, en cuyo caso la consulta no tendr criterio. Conseguir este propsito requiere resolver dos problemas; por un lado, lograr que el cuadro combinado muestre tambin 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 slo tendramos que aadir dicho valor. Necesitamos crear una consulta de unin que nos permita asociar a los elementos de la tabla el texto deseado. Este tipo de consulta slo se puede crear en la pantalla de SQL y su sintaxis sera: 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 cmo solucionar el tema de la consulta. Para que el criterio funcione bien usaremos la siguiente expresin con la funcin 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 disear una tabla, es que Access muestre el mensaje de que hay demasiados campos, impidiendo entonces grabar el diseo. De hecho, Access permite que una tabla pueda tener un mximo de 255 campos, aunque este tope es ms 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 lmite descrito. El motivo es que Access tiene un contador interno del nmero de campos que llevamos en la tabla. Al aadir, 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 compactacin actualiza, entre otros temas, ese contador interno relativo al nmero 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 opcin Agregar al grupo e indicar el grupo apropiado. Numeracin correlativa sin campo Autonumrico: if me.codigocliente < 1 then me.codigocliente=DMax(codigocliente,Nombretabla)+1 end if Trabajar con campos autonumricos: Dos de las necesidades ms tpicas con campos autonumricos son: volver a empezar en 1 despus 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 ms complicado. Supongamos que ya tenemos la tabla con el campo autonumrico creada. A continuacin creamos una tabla auxiliar con un campo de tipo Numrico Entero largo, a la que aadiremos 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 aadiremos el registro a la tabla que tiene el campo autonumrico. Tras ejecutar la consulta podemos borrarla, igual que la tabla auxiliar. Ya slo queda eliminar el registro auxiliar de la tabla, con lo que los registros siguientes continuarn la autonumeracin 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 tamao, el color de fondo de los controles y otras propiedades visuales que proporcionan informacin complementaria a los usuarios. Aadir un botn a un formulario que permita eliminar el registro activo: A nivel de usuario existe la combinacin de teclas Ctrl + - (guin) para eliminar el registro activo en un formulario. Una solucin ms cmoda es aadir al formulario un botn y asociar el siguiente cdigo 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 condicin, 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 situacin, en cuyo caso es suficiente con aplicar el mtodo Undo (deshacer). Sin embargo, si se trata de un registro existente es necesario aplicar el mtodo Delete. El problema es que no se puede aplicar directamente al objeto Me. Por tanto, la solucin es aplicrselo a RecordsetClone, una vez situado el registro activo en el mismo que en el formulario. Cmo 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 peridicamente. 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 opcin Reparar permite reparar una base de datos daada, lo que ocurre en la mayora de los casos cuando Access se cierra inesperadamente antes de guardar la base de datos. A veces, una base de datos tambin se puede daar sin que Access se d cuenta. Si la base de datos se comporta de manera extraa, es posible que sea necesario repararla. Cuando repare una base de datos, tambin debe compactarla despus. 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 reparacin. Cuando termina, vuelve a la ventana Base de datos. De igual manera, si selecciona la opcin para compactar mientras est abierta la base de datos, Access compactar slo 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 continuacin, elija la base de datos que desea compactar y, en el cuadro de dilogo Compactar la base de datos en, seleccione una base de datos existente o escriba un nuevo nombre para la compactacin. Campos numricos decimales que no aparecen cuando su valor es 0: =iif([NombreCampo]<>0;[NombreCampo]) y en formato: estndar, n decimales automtico 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 cronmetro escribimos 1000. En el cdigo de evento AlCronmetro del formulario escribimos me.lblHora.caption=Time. Limitar el nmero de registros en una tabla: If DCount (*,Reservas,FechaReserva=Forms!Reservas!Fecha)>50 then msgbox Ya hay 50 registros end if