SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: mluqero en Martes 10 de Junio de 2003, 18:24
-
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:
-
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:
-
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:
-
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.
-
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:
-
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
-
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.
-
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