Inicio

COMPETICIÓN

JUEGOS

Formulario de acceso






¿Recuperar clave?

Estadísticas

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

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 (II) E-Mail
Calificación del usuario: / 10
MaloBueno 
  
miércoles, 03 de marzo de 2010
Calendario de access Quiero agradecer de nuevo los elogios de aquellos/as que nos leeis, expecialmente los de aquellos/as interesados en Access y las noticias que muy de tarde en tarde incluimos en nuestra web sobre ese tema. En el último tutorial que os trajimos sobre Access explicábamos cómo insertar un control de calendario en un formulario de manera que al acceder al campo fecha deseado se activara dicho calendario (que había estado oculto hasta entonces) y nos permitía seleccionar una fecha que se insertaba automáticamente en el campo de formulario mencionado. Se trataba de un sencillo ejemplo de cómo conseguir un efecto vistoso echando mano de los controles que incluye Access con sólo incluir unas pocas líneas en visual basic (vba).
A lo largo de las últimas semanas he recibido varios correos con consultas al respecto y sobre todo preguntas sobre cómo mejorar el ejemplo que dejaba. Una de las preguntas se refería a cómo conseguir que el control de calendario fuese utilizado por dos o más campos diferentes de fechas sin necesidad de insertar tantos controles de calendario como campos de formulario con fechas tuviésemos. La verdad es que me ha parecido interesante, incluso necesario, poder mejorar el pequeño tutorial que os dejé y de ahí que hablemos de nuevo sobre este aspecto. Aquellos/as que no leísteis en su día la primera parte de este tutorial podéis hacerlo a través del siguiente enlace: ACCESS y CALENDARIOS 1ª PARTE
Podemos seguir muchos métodos para poder utilizar el control calendario con varios campos diferentes. Lo primero quizás sería pensar repetir el proceso dos veces, es decir, tener dos controles calendario que se activarían desde dos campos diferentes. Bueno podría ser una forma pero quizás no sea la más elegante y desde luego nos encontraríamos con un serio problema si necesitásemos utilizar el control calendario desde múltiples campos de fecha.
Pero hay una manera mucho más sencilla. Antes de nada deberíamos abrir la tabla e incluir un nuevo campo de fecha. Posteriormente en el formulario deberíamos crear un nuevo control Combobox que se llamase por ejemplo FECHA_PAGO. Tras esto habría que acceder al Panel de Visual Basic para hacer el resto de nuestro trabajo tal y como explicabamos en la primera parte de este tutorial. Lo esencial sería declarar una variable a la que podríamos llamar FECHAORIGEN y que sería del tipo ComboBox. Sería una especie de comodín que iríamos modificando en función de nuestras necesidades. De esta forma, justo debajo del "Option Compare Database" incluiríamos una línea tal que así:
    Dim FECHAORIGEN As ComboBox
 
Después, dentro del código correspondiente al evento Mouseover del control FECHA_PAGO establecemos lo siguiente:
Private Sub FECHA_FACTURA_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Set FECHAORIGEN = FECHA_FACTURA  'Aquí usamos la variable "comodín" y la igualamos al control que nos interesa
Calendar0.Visible = True
Calendar0.SetFocus
Calendar0.Value = FECHA_FACTURA.Value
End Sub
 
Hacemos lo propio con nuestro segundo control combobox de fechas. No creo necesario poner el código porque realmente sólo hay que cambiar los valores referentes al nombre del control y si alguien tiene algún problema siempre podría acceder al código del archivo de access que incluyo. Ahora nos vamos al evento CLIC del calendario y sólo tenemos que cambiar las líneas que hacían referencia al control FECHA_FACTURA y cambiarlas por la variable "comodín". Deberías quedar más o menos así:

Private Sub Calendar0_Click()
FECHAORIGEN.Value = Calendar0.Value  'Ahora aquí hacemos referencia a la variable comodín que ya tiene su valor establecido
FECHAORIGEN.SetFocus
Calendar0.Visible = False
End Sub

 
Bueno, creo que no hay realmente mucho que explicar pero en por si acaso os adjunto un archivo rar con la base de datos y sus modificaciones para que cualquiera pueda verlo más claramente. Podréis comprobar que he insertado algunas líneas más de código que sirven es para que cuando el campo fecha esté vacío (sea nulo) utilice la fecha actual en lugar de tomar la primera que le venga en gana. Si el campo contiene una fecha, lógicamente utilizaría la que nos interesa. Espero que os sea de utilidad.
    DESCARGAR BASE DE DATOS DE EJEMPLO    
Si tenéis cualquier sugerencia o duda podéis contactar conmigo en...Image
 
Siguiente >
 

Mensajilios

Mensajes Privados

no hay nuevos mensajes

¿Quién está en línea?

Hay 24 invitados en línea

Encuestas

Desafío Freaky