Utilización eficaz del control calendario que viene con MS-Access para cambiar fácilmente los campos de tipo fecha de los formularios.
Descargar la base de datos calendario.7z…
(Está comprimido con 7-zip)
Se puede usar el calendario de dos formas distintas
| Al hacer doble clic: | =AbrirCalendario() |
|---|
| Al hacer clic: | =AbrirCalendario("FechaPedido") |
|---|
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
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
7 comentarios:
Funciona bien cuando los marcadores no están el encabezado o pie del documento.
¿Hay forma de solucionarlo?
Un saludo
I’d prefer reading in my native language, because my knowledge of your languange is no so well. But it was interesting!
Esta muy Buena tu explicacion... Pero tengo una pregunta... puedo crear ul filtro como la busqueda del winamp?? es decir que mientras escribo automaticamente me vaya filtrando enseguida???? Se puede???? Gracias....
carlosandresardila(arroba)gmail(punto)com Gracias....
Muchas gracias por tu generosa contribución me fue muy utíl
Hola, agradezco mucho la información, me esta ayudando muchisimo. Gracias.
Pero tengo un problemilla al intentar ejecutarlo en mi base de datos. Caundo le doy al boton me sale un pantallazo de error del Informeword que dice: "El parametro de la cadena es demasiado largo".
Además con la curiosidad de que en el dot. se me vuelcan unos campos y otros no ¿?.
Agradecería que me indicarais cual es mi error (estoy un poco pez en VB) ya que llevo mucho tiempo detras de esto y que ahora gracias a ti ya sale .... a medias.
Grascias Mil.
Mil gracias!! por este código, me sirvio muchísimo, era exactamente lo que buscaba. Un abrazo.
Muchisima gracia por estos codigo, deberian existir mas personas como tu, asi, lo que estamos empezado en este mundo de la informatica, encontraramos el conocimiento mas rapido