• Miércoles 6 de Noviembre de 2024, 07:33

Autor Tema:  Re: Intervalo de fechas  (Leído 2301 veces)

mluqero

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Intervalo de fechas
« en: Martes 10 de Junio de 2003, 18:24 »
0
Se que se parece a algunas consultas, pero he probado y no me funcionan las respuestas.
Os cuento
Tengo 2 textbox en un formulario en los que introduzco 2 fechas (el formulario tiene los textbox la propiedad dataformat como date). Tambien he probado sin tener esta propiedad como tal.
A la hora de hacer la seleccion entre los intervalo, me los muestra todos.
Por cierto, por si sirve de algo, en la BD tambien son de tipo date)
Como puedo hacerlo!!!!!!!!
:ayuda: :ayuda:

rlarrea

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #1 en: Martes 10 de Junio de 2003, 19:50 »
0
Hola colega en realidad que es lo que quieres hacer para trabajar con intervalo de fechas una opcion es datediff
DateDiff(Interval As String, Date1, Date2)
Los intervalos no los tengo aun  pero en date1 pones una fecha en date 2 pones otra fecha y lafuncion te da el intervalo de dias uno de los intervalos en "d" que significa dia ...nos estamos vcomunicando espero te sirva    :good:
Rocky Larrea Chira
Lima -- Peru
Programador

rlarrea

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #2 en: Martes 10 de Junio de 2003, 20:26 »
0
Espero esto solucione tu problema

en un formulario pon 2 textbox en la parte superior uno es para la fecha 1 y otro para la fecha 2 el tercero es para mostrar el resultado del intervalo. tambien coloca un command button para realizar la operacion.

ojo en el textbox 1 y 2 ingresaras fechas asi 20/05/2003 y 25/05/2003 ok.

en el evento click del comand1 ingresas lo siguiente :

Dim sdia As String
sdia = DateDiff("d", CDate(Text1.Text), CDate(Text2.Text))
Text3.Text = sdia

lo que hace el datediff es buscar el intervalo de dias entre dos fechas especificadas "d" es el intervalo que le dice al datediff que de como resultado dias CDate(text1.text) y CDate(text2.text)
son las fechas a las que se le buscara el intervalo.
y listo eso es todo .. espero sea lo que necesitas y te ayude o te de una idea. bye
:good:
Rocky Larrea Chira
Lima -- Peru
Programador

mluqero

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #3 en: Miércoles 11 de Junio de 2003, 17:46 »
0
Lo que pongo exactamente es:
If (CStr(frmSeleccionBusqueda.FechaIni) >= Me.txtFechaEntrada.Text <= CStr(frmSeleccionBusqueda.FechaFin)) Then
        BUSCADO = Adodc1.Recordset.Bookmark
        Text4.Text = Adodc1.Recordset.Bookmark
        MICAD = "SELECT * FROM ENTRADAS WHERE F_ENTRADA between #" & frmSeleccionBusqueda.FechaIni & "# AND #" & frmSeleccionBusqueda.FechaFin & "#"
        RSAux.RecordSource = MICAD
        Set dtgResultados.DataSource = RSAux
      End If

Donde fechaini y fechafin son variables globales que tienen las fechas introducidas por el usuario.

Omarrpat

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #4 en: Miércoles 11 de Junio de 2003, 18:09 »
0
Por que no utillizas los objetos maskedit, con formato para fecha, y una variable date o dos

dim dtFecIni as Date
dtFecIni = maskedit1


ademas incluye este sql en tu consulta
ok

"WHERE ( ([TbaSISPASS01P].[Fecha]>=datevalue('" & CStr(dtFechIni) & "')) And ([TbaSISPASS01P].[Fecha]<=datevalue('" & CStr(dtFechFin) & "') )

ojala te sirva.

sino verifica un apartado que respondi mas abajo se titulas perdiodos de fechas infalibles

suerte
:good:

JackRandall

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #5 en: Domingo 10 de Agosto de 2003, 00:54 »
0
si lo ke necesitas es el intervalo desde bases de datos mejor busca algo sobre between, es mas seguro, no tengo el codigo en este momento pero no es dificl de encontrar

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Intervalo de fechas
« Respuesta #6 en: Domingo 10 de Agosto de 2003, 01:59 »
0
Supongo que se trate de un error sintáctico al trascribir los datos "de memoria"... pero si tú pones esta condición
If (CStr(frmSeleccionBusqueda.FechaIni) >= Me.txtFechaEntrada.Text <= CStr(frmSeleccionBusqueda.FechaFin)) Then difícilmente podrás encontrar dados correspondientes al intervalo en que la fecha inicial tenga que ser MAYOR o IGUAL que la Fecha de Entrada... O te coge lo correspondiente a tal fecha (VALOR IGUAL) o todo lo demás no cumplirá la condición...  Vamos, digo yo...

Por otra parte no hace mucho comuniqué que la instrucción BETWEEN deja mucho que desear en la seguridad de la respuesta... Es más fiable (aunque sea menos elegante) el WHERE FechaEntrada >= FecInicio And FechaEntrada <= FecFinal (con formato correcto, claro está...)

Saludos y suerte.

chiaravel

  • Miembro MUY activo
  • ***
  • Mensajes: 242
    • Ver Perfil
Intervalo de fechas
« Respuesta #7 en: Lunes 11 de Agosto de 2003, 16:18 »
0
Me parece que el problema es mas bien de logica.

Si estamos hablando de fechas y de datos de tipo DATE, porque los convertis en texto con CSTR ?

por ejemplo.

si es de tipo DATE

12/03/2003 es < a 03/04/2003

pero si lo convertis a texto

12/03/2002 es > a 03/04/2003

Me explico ?

quizas ahi este todo el problema, nunca se pueden comparar por > o < 2 fechas si primero las convertis en texto.

Suerte
Pablo Tilotta
Analista de Sistemas
Argentina