Anda di halaman 1dari 28

Control DtPicker

Control de fechas y horas

Introduccin

Este calendario llamado DTPicker es muy fcil 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 incorpors al proyecto desde el men Proyecto en la opcin Agregar componentes, como muestra esta captura:

Una vista previa del DTPicker:

El DtPicker lo podemos utilizar para que el usuario pueda seleccionar una fecha o tambin horas. Como muchos otros controles, las principales propiedades del mismo se pueden configurar desde la ficha Custom o personalizado, desde la ventana Pgina de propiedades:

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 sera en tiempo de diseo seleccionado la propiedad Value Para establecer la fecha actual o poder recuperarla en tiempo de ejecucin, un ejemplo: Colocar un Botn Command1 que recupera la fecha. Un Command2 para cambiar la fecha, es decir cambiar la propiedad Value, pasndole 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 grfico, cuando se despliega el calendario, este tiene unas flechas para poder mover o desplazarse por los meses.

Propiedad MaxDate y MinDate

Si observas en la pgina de propiedades, hay una propiedad llamada MaxDate y otra MinDate. Estas 2 propiedades establecen las fechas mximas y mnimas que puede mostrar el DTPicker y tambin que el usuario puede seleccionar, es decir las que aceptar el control. Una cosa importante es que la fecha Mxima, obviamente no puede ser una fecha inferior a MinDate, ya que si ocurre esto Visual basic te mostrara el error: 35774: "Se especific un valor para la propiedad MaxDate que es menor que el valor actual de MinDate"

La propiedad Format

Esta propiedad establece el formato en el cual el DTPicker mostrar las fechas y horas. Este tiene 4 valores posibles: dtpLongDate : Visualiza las fechas en formato largo dtpShortDate: Visualiza las fechas en formato corto dtpTime: El DTPicker visualiza solo horas dtpCustom: El DTPicker acepta un valor con formato personalizado

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 grfico est como dd-mm-yy, el que muestra 04-00-06

Propiedad Enabled, CheckBox y UpDown


Desde la pgina de propiedades tambin tenemos otras 3 propiedades Enabled: Habilita o deshabilita el DTPicker CheckBox: Muestra una casilla de verificacin para el control UpDown: Si est en True el usuario puede desplazarse por medio de botones de scroll , si est en False se despliega un calendario.

Propiedad CheckBox Como muestra la imagen, la propiedad CheckBox permite mostrar una casilla de verificacin 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 ejecucin "Uso no vlido 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 cdigo 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 grfico se visualiza la propiedad UpDownd con los dos valores:

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 habilitarn los campos en el combo desplegable Datafield para poder seleccionar el que queremos visualizar en el control Si quisiramos hacerlo mediante cdigo y enlazar el DTPicker en tiempo de ejecucin a un recordset, este es un ejemplo:

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

Solapa Color de la pgina de propiedades

Desde esta opcin, 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...

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 cdigo en tiempo de ejecucin 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

Evento CloseUp y DropDown


l evento CloseUp se dispara o produce , justo antes de cerrarse el calendario desplegable. y el evento DropDown lo contrario, es decir antes de desplegarlo: Private Sub DTPicker1_CloseUp() MsgBox "Se ejecut el evento CloseUp" End Sub

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

Evento Validate

El evento Validate del DtPicker, se utiliza si queremos validar en algn 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 validacin, podemos utilizar la propiedad CausesValidation , indicndole 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

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.

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

Anda mungkin juga menyukai