Sección de tutoriales y manuales vb

Control DtPicker - Control de fechas y horas

Volver al índice



 

La siguiente guía describe el uso del control DtPicker de Visual basic

 

 

 


 

1 - Introducción

Este otro control de calendario llamado DTPicker es muy fácil de usarlo, y el mismo está contenido en el paquete o conjunto de Ocx bajo el nombre de Microsoft Windows Common Control 2 - 6.0 , y lo accedes o lo incorporás al proyecto desde el menú Proyecto en la opción Agregar componentes, como muestra esta captura:

 

vista de la ventana Componentes para agrgar el control de Fecha al proyecto de vb

 

 

Una vista previa del DTPicker:

Vista previa del control DTPicker

 

El DtPicker lo podemos utilizar para que el usuario pueda seleccionar una fecha o también horas.

Como muchos otros controles, las principales propiedades del mismo se pueden configurar desde la ficha Custom o personalizado, desde la ventana Página de propiedades:

 

Vista previa de la página de propiedades del control

 


2 - Propiedad Value

 

La propiedad Value del control, especifica el valor de la fecha actual del DTPicker.

Al agregar el control a un proyecto, mejor dicho a un Form, este tendrá la fecha que tenga establecida el sistema. Este valor lo podemos cambiar desde esta ventana (Custom) o desde la ventana de propiedades de Visual Basic, esto sería en tiempo de diseño seleccionado la propiedad Value

Para establecer la fecha actual o poder recuperarla en tiempo de ejecución, un ejemplo:

Colocar un Botón Command1 que recupera la fecha. Un Command2 para cambiar la fecha, es decir cambiar la propiedad Value, pasándole como valor obviamente un valor de tipo Date

 

Private Sub Command1_Click()
'Recuperamos el valor y lo mostramos en la barra de titulo del formulario
Me.Caption = DTPicker1.Value
End Sub

Private Sub Command2_Click()
'Cambiamos el valor del DTPicker
DTPicker1.Value = Cdate("01/01/2000")
End Sub

 

Si te fijas en el primer gráfico, cuando se despliega el calendario, este tiene unas flechas para poder mover o desplazarse por los meses.

 


3 - Propiedad MaxDate y MinDate

 

Si observas en la página de propiedades, hay una propiedad llamada MaxDate y otra MinDate. Estas 2 propiedades establecen las fechas máximas y mínimas que puede mostrar el DTPicker y también que el usuario puede seleccionar, es decir las que aceptará el control.

Una cosa importante es que la fecha Máxima, obviamente no puede ser una fecha inferior a MinDate, ya que si ocurre esto Visual basic te mostraría el error: 35774:

"Se especificó un valor para la propiedad MaxDate que es menor que el valor actual de MinDate"

 


4 - La propiedad Format

Esta propiedad establece el formato en el cual el DTPicker mostrará las fechas y horas. Este tiene 4 valores posibles:

 

Vista previa de los posibles formatos de fechas y horas aceptadas por el control

 

Si seleccionamos el valor dtpCustom en la propiedad Format, podemos especificar un valor personalizado, para ello debemos indicar en la casilla o propiedad CustomFormat, el formato personalizado que queremos aplicar, en el ejemplo del gráfico está como dd-mm-yy, el que muestra 04-00-06

 


5 - Propiedad Enabled, CheckBox y UpDown

Desde la página de propiedades también tenemos otras 3 propiedades

 

 

Propiedad CheckBox

Como muestra la imagen, la propiedad CheckBox permite mostrar una casilla de verificación en el control, cuando no está marcada o chequeda, el DTPicker no tiene seleccionada ninguna fecha, por lo tanto el valor de la propiedad Value es Null, es decir un valor Nulo. Por eso hay que tener cuidado al consultar este valor y que no provoque un error 94 en tiempo de ejecución "Uso no válido de Null".

Un ejemplo para poder comprobar esto último:

Colocar un control DtPicker llamado DtPicker1. En la propiedad CheckBox colocar el Valor True para poder mostrar el Check. Por último colocar un control Command1.

Pegar el siguiente código fuente en el Formulario:

 

Private Sub Command1_Click()

'Primero comprobamos que el DTPicker está con la propiedad _
 CheckBox en True, si lo está ..
If DTPicker1.CheckBox Then
    
    
    '..comprueba si el valor de value es Null
    If Not IsNull(DTPicker1.Value) Then
        MsgBox " Está con el CheckBox marcado", vbInformation 'con el ckeck
    Else
        MsgBox " Está con el CheckBox Desmarcado ", vbInformation 'Sin el Check
    End If
End If

End Sub 

 

Propiedad UpDown

La propiedad UpDown, cuando está con el valor True, no se despliega el calendario, y solo se pueden seleccionar las fechas con el uso del teclado o con los botones de Scroll. Por defecto esta propiedad está en False, es decir despliega el Calendario.

En el siguiente gráfico se visualiza la propiedad UpDownd con los dos valores:

 

 

 


6 - Propiedad DataField y DataSource

 

Otras propiedades interesantes cuando queremos enlazar el DTPicker con una base de datos, son las propiedades DataField y DataSource.

En la primera debemos especificar el campo al que estará enlazado el control DTPicker, el segundo es el control de datos al que estará enganchado o enlazado, por ejemplo un control Data o Ado.

Primero debemos especificar el control en la propiedad DataSource, luego ya se habilitarán los campos en el combo desplegable Datafield para poder seleccionar el que queremos visualizar en el control

Si quisiéramos hacerlo mediante código y enlazar el DTPicker en tiempo de ejecución a un recordset, este es un ejemplo:

 

Private Sub Command1_Click()
Set DTPicker1.DataSource = ElRecordset
DTPicker1.DataField = "ElCampo"
End Sub

 


7 - Solapa Color de la página de propiedades

Desde esta opción, se puede configurar varios aspectos relacionados al color del DTPicker en general, como por ejemplo el color de fondo del calendario ( Propiedad CalendarBackColor ), el color de la fuente etc...

 

 


 

8 - Eventos del DtPicker:

 

Evento change

Este evento ocurre o se dispara y produce cada ves que el DTPicker cambia su propiedad Value, ya sea mediante código en tiempo de ejecución o cuando el usuario cambió y seleccionó una fecha diferente, por ejemplo esto muestra un mensaje al cambiar la propiedad Value:

 

Private Sub DTPicker1_Change()

MsgBox DTPicker1.Value

End Sub

 

9 - Evento CloseUp y DropDown

El evento CloseUp se dispara o produce , justo antes de cerrarse el calendario desplegable. y el evento DropDown lo contrario, es decir antes de desplegarlo:

Un ejemplo:

Private Sub DTPicker1_CloseUp()
MsgBox "Se ejecutó el evento CloseUp"
End Sub

Private Sub DTPicker1_DropDown()
MsgBox "Se ejecutó el evento DropDown"
End Sub

 

10 - Evento Validate

El evento Validate del DtPicker, se utiliza si queremos validar en algún momento el valor seleccionado o actual del control cuando este pierde el foco.

 

Private Sub DTPicker1_Validate(Cancel As Boolean)

If DTPicker1.Value >= CDate("01/01/06") Then
DTPicker1.SetFocus
MsgBox "Debe seleccionar una fecha menor a 01/01/06", vbExclamation

End If

End Sub

 

Si queremos anular el Validate o validación, podemos utilizar la propiedad CausesValidation , indicándole como valor False, o por el contrario el valor True para que se produzca el evento. Por defecto esta propiedad está con el valor True.

 

DTPicker1.CausesValidation = False

 

11 - Evento KeyDown, KeyUp y KeyPress

 

El primero se produce cuando el usuario presiona una tecla mientras el DtPicker tiene el enfoque. El segundo por el contrario ocurre cuando el usuario libera una tecla mientras el control posee el enfoque . Por último el KeyPress ocurre al presionar y liberar una tecla ANSI.

 

Importante: en este control, por ejemplo si queremos pasar el foco a otro control de formulario, al presionar la tecla Enter, no se debe utilizar el evento KeyPress, si no el KeyDown.

Por ejemplo:

Private Sub DTPicker1_KeyDown(KeyCode As Integer, Shift As Integer)


' Si se presionó la tecla Enter
If KeyCode = vbKeyReturn Then
   
   ' Pasa el enfoque al siguiente control
   SendKeys "{Tab}"

End If
End Sub 

 


12 - Otros eventos

 

 


13 - Enlaces relacionados

 

Volver al índice

 


Buscar en Recursos vb