ProInf.net

2 Calendario para cambiar las fechas en MS-Access

Francisco 20-03-07
Imagen del calendario

Utilización eficaz del control calendario que viene con MS-Access para cambiar fácilmente los campos de tipo fecha de los formularios.

Ver imagen de ejemplo…

Descargar la base de datos calendario.7z…
(Está comprimido con 7-zip)

 

Inicio rápido

  1. Descargar la base de datos calendario.7z…
  2. De esta base de datos importar el formulario "FormCalendario" y el módulo "ModuloCalendario" a nuestra propia base de datos.

Forma de uso

Se puede usar el calendario de dos formas distintas

  • Directamente al hacer doble clic sobre un cuadro de texto o combinado que contenga una fecha. Por ejemplo:
    Al hacer doble clic:=AbrirCalendario()
  • Indirectamente al hacer clic en un botón de comando. En este caso hemos de indicar el nombre del cuadro de texto o combinado que contiene la fecha. Por ejemplo:
    Al hacer clic:=AbrirCalendario("FechaPedido")

Código fuente del calendario "FormCalendario"

Option Compare Database
Option Explicit

Dim controlFecha As Control 'Variable global que se refiere a un cuadro de texto o cuadro combinado

Private Sub ComandoAceptar_Click()
Dim fecha As Date 'Declarar una variable fecha
fecha = Me.Calendar0.Value 'Pongo en la variable fecha la fecha seleccionada en el calendario
controlFecha = fecha 'Poner la fecha en el cuadro de texto enfocado
controlFecha.Requery 'Reconsultar el cuadro de texto para que muestre la nueva fecha
DoCmd.Close 'Cerrar el formulario
End Sub

Private Sub ComandoCancelar_Click()
DoCmd.Close 'Cerrar este formulario
End Sub

Private Sub Form_Load() 'Evento que se efectúa cuando se acaba de abrir este formulario
Dim fecha As Date 'Variable de tipo fecha
fecha = Nz(Screen.ActiveControl, Date) 'Guardar en la variable fecha lo que hay en el control enfocado (con el cursor)
Me.Calendar0.Value = fecha 'Mostrar la fecha en el calendario
Set controlFecha = Screen.ActiveControl 'Recordar cual es el control de la fecha
Me.Caption = "Calendario " & controlFecha.ControlSource 'Título del calendario es el nombre del campo
End Sub

Código fuente del módulo "ModuloCalendario"

Function AbrirCalendario(Optional ByVal NombreControlFecha As String = "")
Dim control As control
If NombreControlFecha <> "" Then
Set control = Screen.ActiveForm.Controls(NombreControlFecha)
Else
Set control = Screen.ActiveControl
End If
If Not control.Locked And control.Enabled Then
control.SetFocus
DoCmd.OpenForm "FormCalendario", WindowMode:=acDialog
Else
MsgBox "El control de fecha '" & control.ControlSource & "' está bloqueado o desactivado", vbExclamation
End If
End Function
  • Si se indica el nombre de control fecha se busca en el formulario actual y sino se utiliza el control actual del formulario actual.
  • Si el control de fecha está bloqueado o desactivado se muestra un mensaje indicando tal circunstancia
Compartir

 

Artículos relacionados:

  • Ofimática 2016 para Formación Profesional…

    Curso de ofimática de Formación Profesional: Sistema operativo, Correo electrónico, Procesador de textos, Hoja de cálculo, Base de datos y Presentaciones.

  • Access 2010 amb certificat Microsoft…

    Curs de Microsoft Access amb certificat MOS de Microsoft. Inclou els exercicis de classe, el calendari d'assistència, el temari del curs i enllaços relacionats.

  • Cálculo del IBAN a partir del CCC…

    Código fuente para la conversión automática del CCC en IBAN; cálculo del código de control del CCC y del IBAN. Disponible en JavaScript, PHP, Python y VB

  • Clase para crear formularios en Excel…

    Clase en Visual Basic para Excel para automatizar la creación de una ficha que permita insertar, modificar, borrar y buscar en una tabla de la hoja de cálculo.

  • Macro Excel de consulta por ejemplo…

    Macro en Excel que filtra datos de una tabla según la celda activa en ese momento y escribe el resultado en una nueva hoja de cálculo.

  • Tabla cartesiana en Excel…

    Código en Visual Basic de Excel para la creación de tablas cartesianas a partir de una base de datos. Se describe el método empleado paso a paso.

Ir arriba