Como hacer que VB me reconozca en un textbox los datos como fechas?

Como hacer que en VB me reconozca los datos que escribo en un textbox como fechas.

Para poder, restar o sumar fachas...

Por ejemplo: tengo un formulario con varios productos, que entraron al almacen en determinadas fechas y salieron en otras. Quiero saber que tiempo duro cada producto en el almacen.. ¿cómo lo hago?

1 respuesta

Respuesta
1

Supongo que capturas el tiempo de entrada y luego capturas el tiempo de salida y quieres que te aparezca el tiempo en el almacén.

Te anexo la macro:

Private Sub TextBox5_AfterUpdate()
'Por.Dante Amor
    Dim FecEnt As Date
    Dim FecSal As Date
    '
    If TextBox4 <> "" Then
        FecEnt = TextBox4
        FecSal = TextBox5
        If FecSal >= FecEnt Then
            TextBox6 = FecSal - FecEnt
        End If
    End If
End Sub

Cambia textbox4 por el nombre de tu texbox que tiene la entrada

Cambia textbox5 por el nombre de tu texbox que tiene la salida

Cambia textbox6 por el nombre de tu texbox que va a tener el tiempo en el almacén

HI, Dante

se ve bien pero no he logrado hacer nada.

esta forma me da los resultado sin son fechas.

mira digitos los datos de esta forma:

tiempo de entrada TIMEIN(20/02/2014) tiempo de salida TIMEOUT(21/02/2014) la resta deberia ser en el textbox TIEMPO_EN_EL_ALMACEN (01/00/0000) claro si es posible.

lo que estoy haciendo es que no les estoy poniendo ( / o - ) a las fechas solo digitos los numeros como generales EJ (20022014) 

ahh las prog. que se ven ariba son de los botones nuevo y del boton limpiar. no tienen lada que ver.

from: R.D. Alex Uribe, saludos y buenas fiestas.

Como tienes un textbox, hay que ayudarlo para pasar los datos a fechas, para ello puedes utilizar una de las siguientes opciones:


Opción 1. Lo más sencillo y sin que te compliques es que captures las fechas bien, ej "20/02/2014", con esto te ahorras muchos dolores de cabeza.


Opción 2. Si no vas a capturar la fecha de forma correcta, entonces se tiene que validar que los dígitos 3 y 4 sea un número del 1 al 12 (meses), luego validar que los dígitos 1 y 2 estén dentro del mes (el mes que pusiste en los dígitos 3 y 4), es decir, si pusiste en mes "04", entonces en días solamente puedes poner del 1 al 30. Y por último validar que el año sea un número parecido a un año. En fin, tienes que validar varios datos y si no es una fecha real, entonces te enviará un error.


Opción 3. Poner un control de fecha: puede ser un control calendar, un monthview, un DTPicker, un GraphittiDate, en fin, existen varios controles que puedes utilizar en lugar de un textbox, con este tipo de controles solamente tienes que dar un click.

Para insertar un control de fecha, sigue los pasos:

Entra a vba, inserta un formulario, entra al menú de vba / Herramientas / Controles adicionales.

En la lista de controles que te aparecen busca el que se llama "Microsoft Monthview Control 6.0(SP4)", marca la casilla del lado izquierdo del control y presiona Aceptar

En tu Cuadro de Herramientas aparecerá el icono para MonthView. Arrastra el control al panel del userform para que te aparezca el calendario. Si no te funciona intenta con el control "Microsoft Monthview Control 6.0(SP6)"


Opción 4. Puedes poner en un combo los años, en otro combo los meses y en otro combo los días, y luego juntar los tres combos con una instrucción como esta

fecha = DateSerial(Year(combobox1), moth(combobox2), Day(combobox3))


Bueno, ya tienes varias opciones más prácticas que el textbox. Utiliza una que sea más sencilla y funcional.

Saludos. Dante Amor

No olvides valorar la respuesta.

¡Gracias! estas cabriado... again thanks 

hola Sr.

he hecho lo que me haz dicho pero, no he logrado hacer la resta de fechas. por mas que lo intento no doy con ello...

NO PUEDO HACERLO EJ: nací 07/12/1993 hoy es 10/11/2014.

la resta debería ser 27/00/0000. como hago esto....?

esto me esta volviendo loco.... lamento molestarte pero, eres el único que me da respuestas satisfactorias

Saludos desde: República Dominicana

¿Y qué estás utilizando para captura las fechas?

¿Y qué quieres obtener, horas, días,?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas