Visual Basic - Ayuda contar registros BD

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda contar registros BD

Publicado por David (14 intervenciones) el 08/07/2006 10:52:45
Mi pregunta es la siguiente:
Estoy diseñando una aplicacion en VB en la que hay una grafica de ventas por meses asociada a una base de datos en Access. Quiero que llegado un punto me cuente los registros de esta para mostrar las ventas realizadas cada mes pero no consigo afinar la instruccion a poner. A ver si me echais una mano:

rs.Open "select count(*) as mesenero from ventas where year(Fecha)=text1.text and mont(Fecha)=01"

text1.text es un cuadro de texto en donde se indica el año a realizar la busqueda y el 01 corresponderia a enero, los demas meses seria copiar y pegar cambiando este dato, no?.

Gracias por adelantado y un saludo
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:Ayuda contar registros BD

Publicado por ivan (1039 intervenciones) el 08/07/2006 18:29:55
Cuando pones esto..:

rs.Open "select count(*) as mesenero from ventas where year(Fecha)=text1.text and mont(Fecha)=01"

No creo que sea válido usar las funciones YEAR y MONTH en una consulta, hasta ahora no se como hacer algo para obtener algo asi en una consulta.

Lo que pudieras hacer sería una búsqueda por rango de fechas, o sea buscar desde el día primero hasta el día ultimo del mes

Filtro = "select * where fecha " & ">=#" & Format("01/01/2006", "dd/mm/yyyy") & "#"
Filtro = Filtro & " and fecha " & "<=#" & Format("31/01/2006", "dd/mm/yyyy") & "#"

rs.Open Filtro, ....., ......, .......

Para esto tuvieras que "armar" tu consulta de acuerdo al mes y año que quieres filtrar, debes tener una función o algo que te devuelva los días que tiene cada mes, acuérdate que cada 4 años es año biciesto, o sea, cada 4 años Febrero tiene 29 días.

En el ejemplo que te puse se supone obtendrá una consulta de todos los movimientos de Enero del 2006.

Rango_Fechas1 = "01/" & numero_mes & "/" & numero_año
Rango_Fechas2 = Ultimo_Dia_Mes & "/" & numero_mes & "/" & numero_año
Filtro = "select * where fecha " & ">=#" & Format(Rango_Fechas1, "dd/mm/yyyy")
Filtro = Filtro & "#" & " and fecha " & "<=#"
Filtro = Filtro & Format(Rango_Fechas2, "dd/mm/yyyy") & "#"

Aclaro que esto yo lo uso pero para encontrar una fecha en específico, no un rango de fechas, asi que supongo que si le agrego los caracteres > < funcionará igual.

Espero te sirva.
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:Ayuda contar registros BD

Publicado por David (14 intervenciones) el 09/07/2006 14:26:40
pero sin embargo si hago la llamada con la funcion year solamente, sin el mes si que me devuelve correctamente , creo que es un tema de sintaxis en la expresion esta:

rs.Open "select count(*) as mesenero from ventas where year(Fecha)=text1.text and mont(Fecha)=01"

deben faltar unas comillas o algo. La solucion aportada por ivan la veo mas compleja, aunque se agradece igualmente. Ademas como soy un profano total en la materia no se bien bien que es lo que tendria que poner para que funcionara la sentencia.

Se admiten mas aportaciones, gracias por adelantado y un saludo al foro.
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:Ayuda contar registros BD

Publicado por manolo (239 intervenciones) el 09/07/2006 19:01:46
Lo único que tienes que hacer es ponerlo así:
rs.Open ("select count(*) as mesenero from ventas where year(Fecha) = " & Text1 & " and month(Fecha_Pedido) = 01")
Previamente le tienes que haber asignado la conexión al recordset o ponerla a continuación de la sentencia select
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