Access - Funcion

 
Vista:

Funcion

Publicado por sunnver (1 intervención) el 10/10/2006 22:42:51
Hola: no se nada sobre VB, pero si me manejo bien con Access. Incluso copio modulos de ejemplos en la red y los aplico en una base de datos que uso para mi trabajo. Ahora me he encontrado con un problema que no se como hacer que funcione. Voy a poner un ejemplo: necesito calcular el saldo medio de una cta. bancaria durante un determinado tiempo.
En mis escasos conocimiento de programación haria algo asi:

SaldoPromedio=0
Fecha=FechaInicial
Dias=FechaFinal-FechaInicial

Do while fecha<FechaFinal
SaldoPromedio=SaldoPromedio+MovimientoDelDia
End

SaldoPromedio=SaldoPromedio/Dias

Ahora con esto necesito que funcione en VB.
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:Funcion

Publicado por Moises (75 intervenciones) el 11/10/2006 21:29:06
Hola sunnver,

Digo yo, en este caso, en lugar de trabajar en Visual Basic, porque no te creas una consulta y la parametrizas (con las condiciones WHERE), la agrupas (hay tendras la funcion PROMEDIO) y cuando la tengas, sustiyes los criterios que te haya dejado el WHERE.

Ejemplo :
Imagínate que tienes una consulta que te recoje el valor del saldo y fecha

En el apartado SQL de Access seria algo parecido a esto

SELECT Avg(saldo) AS PromedioDeSaldo
FROM extractos
HAVING (((Avg(fecha)) Between #1/1/2005# And #12/31/2005#));

Y luego mediante COPIAR y PEGAR en el VISUAL BASIC te quedaria algo parecido a esto:

Dim lstrSQL as STring 'Cadena SQL
lstrSQL = "SELECT Avg(saldo) AS PromedioDeSaldo " & _
"FROM extractos " & _
"HAVING (((Avg(fecha)) Between #1/1/2005# And #12/31/2005#));"

Esta seria la misma cadena pero en visual (el caracter & _) hace un salto de linea para que el VB lo entienda como una linea entera

Una vez tienes eso ya solo tienes que sustituir las fechas por valores de tus campos.

Dim lstrSQL as STring 'Cadena SQL
lstrSQL = "SELECT Avg(saldo) AS PromedioDeSaldo " & _
"FROM extractos " & _
"HAVING (((Avg(fecha)) Between #" & MiCampo & "# And #" & MiOtroCampo & "#));"
'Eso si, asegurate que el formato de MiCampo y el MiOtroCampo son formatos de fecha ya que si no, tendras algun dolor de cabeza con el tema que no te salgan los datos correctos.

De esta manera ya tienes la SQL para poderla crear informes, consultas, lo que quieras. Lo que no has dicho es donde quieres que se te muestren los datos.

Si se te ha quedado alguna duda o quieres preguntar ya sabes donde estamos
Saludos
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