Visual Basic - Por qué no funciona????

Life is soft - evento anual de software empresarial
 
Vista:

Por qué no funciona????

Publicado por Luis (53 intervenciones) el 23/12/2003 15:22:34
Quiero seleccionar todos los pagos realizados en un mes y año seleccionados por el usuario utilizando la siguiente consulta donde la variable mes es el mes que seleccionó el usuario, dia1 es el primer día del mes y dia2 es el último día del mes dependiendo de que mes sea, es decir, si es enero dia2=31 si es abril dia2=30 y ano es el año introducido por el usuario (estoy trabajando con access)

SELECT fecha, monto FROM pago
WHERE fecha BETWEEN #" & Format(dia1 & "/" & mes & "/" & ano, "dd/mm/yyyy") & " # And
#" & Format(dia2 & "/" & mes & "/" & ano, "dd/mm/yyyy") & " #
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Por qué no funciona????

Publicado por kinoscar (233 intervenciones) el 23/12/2003 15:51:52
veamos lo que quieres es mostrar los datos entre fechas especificas o solo los de un año y mes, bueno te doy ideas para ambas

fechas especificas
se ingresan las fechas completas, la mejor forma es con un dtpicker luego en la consulta quedaria asi

SELECT fecha, monto FROM pago
WHERE fecha BETWEEN datevalue('" & dtpicker1.value & "') and datevalue('" & dtpicker2.value & "')

para año y mes especifico
el usuario ingresa el numero de los meses y el año en textbox
la consulta seria asi

SELECT fecha, monto FROM pago
WHERE año=" & textaño.text & " and month(fecha) between " & textmes1.text & " and " & textmes2.text

esto no esta probado y puede que tenga errores pero es asi como yo lo haria.

espero te sirva

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por qué no funciona????

Publicado por Luis (53 intervenciones) el 23/12/2003 16:53:40
Lo que quiero es que el usuario seleccione de un combo boxel mes y coloque en un textfield el año por eso asigno los dias como el primero y el ultimo para tomar todos los pagos de este mes pero parace que no sirve y recuerda que lo guardo en la base de datos con formato de fecha como puedo decir año=" & textaño.text & " el campo año dentro de la base de datos no existe...
De todas maneras voy a probar me diste unas ideas gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por qué no funciona????

Publicado por kinoscar (233 intervenciones) el 23/12/2003 17:06:11
sorry debe ser

SELECT fecha, monto FROM pago
WHERE year(fecha)=" & textaño.text & " and month(fecha) between " & textmes1.text & " and " & textmes2.text

ahora si como te dije el codigo no estaba probado asi que se me escapo uno que otro detallito por ahi

si lo que quieres que seleccione todo el basta con rescatar el valor del mes con month con eso no es necesario que hagas referencia a los dias, ahora si el usuario va a seleccionar el mes o los meses desde un combo debes transformar el nombre de ese mes al numero que le corresponde aunque asumo que eso ya lo hiciste

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por qué no funciona????

Publicado por kikecg (352 intervenciones) el 23/12/2003 17:07:42
Hola.
Si el between te da problemas, prueba algo como:
fecha >= fechainicial AND fecha <= fechafinal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar