Inicio

COMPETICIÓN

JUEGOS

Formulario de acceso






¿Recuperar clave?

Estadísticas

Usuarios: 1151
Noticias: 2057
Enlaces: 80
Visitantes: 3240171

Dias On line

Webs amigas

Foroz
JoniJnm
Eterea
Frego
Intercambio de banners

Top Reporteros

Usuario

Artículos

abrichu

1133

IRIA222

233

ramonpolispan

221

sonia

115

angela

90

pampita

89

RaFaCrUzCaMpO

62

Jesusrome

30

hermion

26

ROSUELLEN

16

richimol

14

dablapa

10

Achaparrancho

3

belén

3

Elgay

2

jonijnm

2

marlara

2

Pedro

2

Mr. Teeny

2

josemi013

1

obus3000

1

Sindicación

 
Access y calendarios E-Mail
Calificación del usuario: / 12
MaloBueno 
  
jueves, 29 de octubre de 2009
Image Los potanzeros habituales de nuestra web sabéis que, lamentablemente, no actualizamos con la misma frecuencia que antaño. Ciertamente no tenemos excusa ya que el trabajo, los compromisos y obligaciones que tenemos cada uno, etc. no deberían ser obstáculo para pararnos cinco minutos al día y poner un vídeo o cualquier otra cosita. En estos más de 1.000 días que llevamos en línea ha habido varios proyectos que han quedado aparcados (imagino que la desidia es la culpable). Uno de los que inicié personalmente fue realizar un curso de Access en vídeo que tuvo (y sigue teniendo) una acogida que me impresionó gratamente. Es habitual recibir cada semana algún mensaje en el que nos felicitáis por estos pequeños vídeos que alojé en su momento y son también muchos los mensajes que nos llegan pidiendo consejo sobre algún aspecto de Access. No os miento al deciros que le he dado muchas vueltas al tema… desde retomar los vídeo-tutoriales (que hoy por hoy me parece inviable), crear un blog personal independiente (lo cual no descarto), tirar por la borda casi tres años de trabajo, etc. Finalmente he decidido darle una oportunidad a esta web que con tanto cariño creamos hace unos años e intentaré darle un nuevo impulso con un extra de motivación personal.
Finalmente, en un enésimo intento de revitalizar nuestra web y de recuperar esa sección sobre Access (que nunca llegó a existir)… comienza una nueva andadura sobre el mundo de las bases de datos. Queda, por tanto, inaugurada la sección sobre Microsoft Access en la que intentaré dar respuesta a las consultas que nos vayan llegando sobre el tema y en la que iré aportando de vez en cuando algunos trucos, procedimientos y códigos que espero os sean de utilidad. Sí me gustaría advertir que ni soy programador y mucho menos experto en el tema de las bases de datos. Por interés personal primero y por necesidad laboral después, desde hace unos años trabajo casi a diario con bases de datos y en ese tiempo he aprendido algunas cositas que me gustaría compartir. Digo esto porque es posible que mi forma de explicar o de llevar a cabo algunos pasos no puedan sean muy “académicas”. También me gustaría aclarar que mi intención no es comenzar desde cero sino trabajar con ejemplos concretos, explicar cómo he resuelto alguno de los problemas que he encontrado en estos años y enseñar lo poco que sé a todo aquel navegante que lo necesite y quiera leerme. Por tanto, si quieres dar tus primeros pasos con Microsoft Access lo mejor que puedes hacer es utilizar alguno de los miles de manuales que encontrarás en la Red. Hay una web que se llama Google que te será muy útil para encontrar lo que necesitas. Y dicho todo esto… comenzamos.
Habría sido un acierto comenzar resolviendo un super-problemón de esos que “quitan el sentío” y que reciben un montón de visitas porque son la leche… pero se siente… no soy el elegido para encontrar la solución a problemas irresolubles de las bases de datos. Voy a comenzar con un sencillito problema, aunque vistoso en mi opinión. Es muy habitual encontrar aplicaciones (o  ventanas cuando navegamos por Internet) que muestran un calendario y que nos permiten seleccionar una fecha concreta para completar un formulario. Este tipo de utilidades pueden dar un aspecto algo más profesional a nuestros trabajos. Además, facilitan al usuario la introducción de datos y le dan la posibilidad de comprobar por ejemplo que el dato introducido es correcto o que no se está seleccionado un día festivo por error.
Hay cientos de formas de incluir un calendario en una aplicación de Access pero creo que lo interesante es que sea sencillo de incluir y de manejar posteriormente. Lo primero que tenemos que tener es una base de datos para trabajar. Yo he creado una sencillita de ejemplo que podréis descargaros para hacer las pruebas que queráis al final del tutorial. Nuestra base de datos debe tener una tabla en la que haya un campo fecha que deberá estar presente también en el formulario sobre el que vayamos a trabajar.
 
Abrimos nuestra base de datos y posteriormente el formulario en el que queramos incluir el calendario. Eso sí lo abrimos en modo diseño para poder realizar las modificaciones necesarias. 

Image

 

Luego seleccionamos el campo fecha en el que queremos incluir un calendario y hacemos clic con el botón derecho para seleccionar posteriormente ‘Propiedades’.

Image

 

En la ventana PROPIEDADES nos dirigimos a la pestaña DATOS para conocer (si no lo sabéis ya) cuál es el origen de la información y cómo se llama ese campo en el formulario. En nuestro caso tanto el origen de datos como el campo de formulario se llaman ‘FECHA_FACTURA’.  En la imagen inferior la zona marcada en negro hace referencia al campo de la tabla que es origen de los datos que se muestran y en la pestaña superior izquierda el nombre del campo. Recordamos esta información porque después nos hará falta…

Image 

 

Volvemos a hacer clic con el botón derecho del ratón sobre el campo que contiene la fecha pero esta vez usamos la opción Cambiar a > Cuadro combinado. De esta forma estaremos modificando el tipo de campo de formulario.

Image 

 

Ahora lo que necesitamos es insertar el calendario en nuestro formulario. Para ello usamos el botón ‘Más controles’ del Panel de Herramientas (poner imagen). Se nos desplegará un menú y deberemos elegir el Control de Calendario. Dependiendo de la versión de Access que estés utilizando encontrarás una versión u otra. En mi caso estoy trabajando con Access 2003 y esta versión incluye el Control de Calendario 11.
Image 
Automáticamente el cursor habrá cambiado de aspecto y en lugar de una flecha será un pequeño martillo. Haz clic cerca del campo fecha y a continuación arrastra el cursor hasta cubrir la zona que desees para tu calendario. No te preocupes si aparece debajo de otro elemento como me ocurre a mí ya que conseguiremos que nuestro calendario esté oculto mientras no lo necesitemos y cuando vayamos a hacer uso de él aparecerá encima del resto de elementos.

Image 

 

Debería quedar algo parecido a lo que aparece en la siguiente imagen.

Image

 

El siguiente paso que debemos dar es hacer que nuestro calendario sea invisible para que no nos estorbe mientras no sea necesario. Luego, a través de código, haremos que aparezca y desaparezca a voluntad. Para ello abrimos el Panel de propiedades del calendario y en la pestaña ‘Todas’ establecemos el valor de la propiedad ‘Visible’ en 'No' (False) para ocultarlo.

Image 

 

Sin cerrar el Panel de propiedades abrimos la pestaña ‘Eventos’ y en la propiedad ‘Al actualizar’ hacemos clic sobre el icono que aparece con tres puntitos a su derecha. 

Image 

 

Se nos abrirá de inmediato una pequeña ventana con tres opciones. Seleccionaremos la opción ‘Generador de código’.

Image 

 

Automáticamente se nos abrirá la ventana de Visual Basic. Access aunque es bastante completo no abarca todas las posibilidades ni incluye todas las herramientas que un desarrollador puede necesitar. Por ese motivo da la opción de crear manualmente esas aplicaciones a través del lenguaje Visual Basic. Esta misma opción está incluida también en Microsoft Word y en Microsoft Excel. Para poner en práctica nuestro ejemplo no necesitarás conocer este lenguaje de programación pero te invito a que busques información en la Red y que realices todas las pruebas que quieras con los ejemplos. Seguimos… en la ventana de Visual Basic aparecerá ya un texto escrito. Hace referencia al evento ‘Al actualizar’ (Update) pero realmente no es el evento que nos interesa. El evento que necesitamos es ‘Al hacer clic’ (Click) pero como podréis comprobar no aparece entre los eventos a elegir del Control de calendario. Para utilizar el evento que nos interesa desplegamos la lista que aparece en la parte superior derecha de la ventana y lo seleccionamos.

Image 

 

Automáticamente se insertará dos líneas de código entre las cuales insertaremos el código necesario para conseguir nuestro objetivo. Las líneas de código que aparecían en un principio podemos ignorarlas o borrarlas. En el evento Click introducimos el texto que aparece en la imagen inferior. Con la primera línea (FECHA_FACTURA.Value = Calendar0.Value) establecemos que cuando hagamos clic sobre el calendario traspasemos el valor señalado al campo de la fecha. Tenéis que tener claro que deberéis utilizar el nombre que tenga este campo en vuestro formulario.. Recuerda que en un paso anterior vimos cómo se llamaba ese objeto del formuario. Con la segunda línea de código (FECHA_FACTURA.SetFocus) hacemos que el cursor (el foco) regrese al campo FECHA_FACTURA. Por último con la tercera línea (Calendar0.Visible = False) volvemos a ocultar el calendario porque no lo necesitaremos de nuevo. ¿Ocultarlo de nuevo? Tienes razón lo habíamos ocultado antes y ahora volvemos a hacerlo. ¿Raro verdad? Tranqui, ahora verás porqué lo hacemos así.

Image 

 

Una vez introducido el código para este evento necesitaremos un segundo evento. Este será el que consiga que cuando hagamos clic en el desplegable del campo combinado donde aparece la fecha nos muestre nuestro calendario. Para ello utilizamos los desplegables que se encuentran en la parte superior de la ventana de Visual Basic. En el desplegable de la izquierda seleccionamos el nombre del campo donde está la fecha (en nuestro caso FECHA_FACTURA) y en el de la derecha el evento ‘MouseDown’. 

Image

 

Igual que antes se incluirán dos líneas de código entre las que deberemos teclear el código necesario. Antes hemos introducido el código que vamos a utilizar con el objeto calendario y ahora vamos a introducir el código que dirá el comportamiento que tendrá el objeto campo 'FECHA_FACTURA'. En la imagen inferior podrás ver el código que debes introducir. En la primera línea de este nuevo evento (Calendar0.Visible = True) le diremos a Access que cuando hagamos clic en el campo fecha muestre el calendario porque, como recordaréis, establecimos el valor como oculto en el Panel de propiedades… ¿ves como no me había olvidado?. En la segunda línea (Calendar0.SetFocus) establecemos el foco en el calendario ya que hasta ese momento se encontraba en el campo fecha. Por último en la tercera línea (Calendar0.Value = FECHA_FACTURA.Value) le decimos a Access que, en el caso de que el campo fecha tenga algún dato, lo utilice para mostrarlo en el calendario. De esta forma si hace referencia a una fecha de hace dos años nos mostrará el calendario de ese mes en concreto y no el actual. Eso es muy útil para realizar comprobaciones a posteriori o para cambiar la fecha de un día a otro teniendo siempre visible el calendario correspondiente a esa fecha.

Image 

 

Image Una vez que hemos introducido todo el código le damos a grabar y cerramos la ventana de Visual Basic. Ahora sólo nos queda probar nuestro ejemplo. Para ello guardamos todos los cambios que hemos realizado y a continuación hacemos clic en el botón Vista para pasar de vista diseño a vista formulario. Si todo ha ido bien y habéis seguido fielmente todos los pasos, nuestro formulario se mostrará aparentemente sin demasiados cambios… no hay noticias del calendario por ninguna parte. Sin embargo, si hacemos clic sobre el campo fecha aparecerá emergente nuestro querido calendario. Para seleccionar una fecha sólo tendremos que seleccionar el mes y el año y luego hacer clic en el día que queramos. Automáticamente el calendario desaparecerá y la fecha se introducirá automáticamente en nuestro campo

Image

Image

 

Bueno, espero que este sencillo tutorial os haya gustado. Seguramente habrá personas para las que este tutorial sea una simpleza y una pérdida de tiempo esta explicación (creedme hay gente así). Creo que quizás estas personas no sean tan listas ni sepan tanto como piensan si han olvidado tan pronto que no nacieron sabiendo y que  hay personas que necesitan de este tipo de ayudas (al igual que ellos necesitaron de ayudas similares). A estos listillos sólo recordarles que cuanto más sabio eres  mayor conciencia tienes de no conocer en su totalidad lo que te rodea. Al resto lo dicho, espero que os haya sido de utilidad y espero también vuestras críticas, recomendaciones y/o peticiones sobre otros posibles tutoriales. Gracias por haberme leído.
 
    DESCARGAR BASE DE DATOS DE EJEMPLO    
Si tenéis cualquier sugerencia o duda podéis contactar conmigo en...Image
ATENCIÓN: Debido a algunas peticiones al respecto se ha ampliado este tutorial. Si quieres acceder a la segunda parte haz CLIC AQUÍ .
 
 
< Anterior   Siguiente >
 

Mensajilios

Mensajes Privados

no hay nuevos mensajes

¿Quién está en línea?

Hay 20 invitados en línea

Encuestas

Desafío Freaky