Autor Tema: consulta a acces  (Leído 4004 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cordova2011

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
consulta a acces
« en: Julio 12, 2011, 12:29:46 pm »
buenas lo que pasa es lo siguiente ya que no supe como hacer la busqueda de una fecha hasta la otra como hace comunmente los programadores simplificque y puse busqueda de un dia pero de verdad no se por que no me carga todo lo veo bien.

atraves de un boton con un dtpicker quiero buscar todos los asientos de ese dia y sumar los campos montos y dar un total automaticamente mi codigo es algo asi


Dim total As Double
total = 0
If consulta_dia.State = adStateOpen Then
consulta_dia.Close
End If


consulta_dia.Open "SELECT * FROM registro where dia='" & fecha2.Value & "'", conexionBD, adOpenDynamic, adLockOptimistic
 
 If Not consulta_dia.BOF And Not consulta_dia.EOF Then
 
  'Textempresa = consulta_factura.Fields("empresa")
  'Texttelefono = consulta_factura.Fields("telefonos")
  'Textdireccion = consulta_factura.Fields("direccion")
   'Textcontacto = consulta_factura.Fields("contacto")
   'Textestado = consulta_factura.Fields("estado")
   'Textciudad = consulta_factura.Fields("ciudad")
Else
    MsgBox "codigo  no registrado", vbCritical, "Mensaje del Sistema"
End If

  ' aqui cargo mo datagrid la tabla se llama registro donde dia sea = a mi fecha 2 del dtppicker



'CARGA DATAGRID
  Adodc1.RecordSource = "SELECT * FROM registro WHERE dia='" & fecha2.Value & "'"
  Adodc1.Refresh
  DataGrid1.Refresh

'SUMATORIA DE TOTAL
If consulta_dia.State = adStateOpen Then
consulta_dia.Close
End If
consulta_dia.Open "SELECT * FROM facturacion where dia='" & fecha2 & "'", conexionBD, adOpenDynamic, adLockOptimistic
While Not consulta_dia.BOF And Not consulta_dia.EOF
    monto = monto + consulta_dia.Fields("monto")
    consulta_dia.MoveNext
Wend
Text1 = total

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:consulta a acces
« Respuesta #1 en: Julio 12, 2011, 01:32:32 pm »
Hola,

Para la consulta desde hasta, puedes hacerlo asi...!

Código: [Seleccionar]

consulta_dia.Open "SELECT * FROM registro where dia >= '" & fecha2.Value & "' and dia <= '" & fecha3.Value & "'", conexionBD, adOpenDynamic, adLockOptimistic


o puedes hacerlo así

Código: [Seleccionar]

consulta_dia.Open "SELECT * FROM registro where dia BETWEEN '" & fecha2.Value & "' and '" & fecha3.Value & "'", conexionBD, adOpenDynamic, adLockOptimistic

Miguel Núñez.

cordova2011

  • Bytes
  • *
  • Mensajes: 10
  • Reputación: +0/-0
    • Ver Perfil
Re:consulta a acces
« Respuesta #2 en: Julio 12, 2011, 06:06:00 pm »
me dic igual q antes
 argumentos incorrectos  fuera del intervalo permitido o en conflicto con otros

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:consulta a acces
« Respuesta #3 en: Julio 12, 2011, 06:37:53 pm »
Prueba esto. En tu consulta inicial cambia de:
Código: [Seleccionar]
consulta_dia.Open "SELECT * FROM registro where dia='" & fecha2.Value & "'", conexionBD, adOpenDynamic, adLockOptimistica
Código: [Seleccionar]
consulta_dia.Open "SELECT * FROM registro where dia='" & Format(fecha2.Value, "YYYY/MM/DD") & "'", conexionBD, adOpenStatic, adLockOptimistic

y en la sumatoria has que el motor trabaje por ti, si haces la consulta y solo recorres para hacer la suma cambia de :
Código: [Seleccionar]
'SUMATORIA DE TOTAL
If consulta_dia.State = adStateOpen Then
consulta_dia.Close
End If
consulta_dia.Open "SELECT * FROM facturacion where dia='" & fecha2 & "'", conexionBD, adOpenDynamic, adLockOptimistic
While Not consulta_dia.BOF And Not consulta_dia.EOF
    monto = monto + consulta_dia.Fields("monto")
    consulta_dia.MoveNext
Wend
Text1 = total

a esto

Código: [Seleccionar]
'SUMATORIA DE TOTAL
If consulta_dia.State = 1 then consulta_dia.close
consulta_dia.Open "SELECT sum(monto) as Total FROM facturacion where dia='" & format(fecha2, "YYYY/MM/DD") & "'", conexionBD, adOpenStatic, adLockOptimistic
If consulta_dia.RecordCount > 0 then
   Text1 = consulta_dia!Total
End If
Si vas a usar para otra cosa consulta_dia entonces si usa tu While-Wend

Saludos
Me encuentras en YAcosta.com

wolf_kof

  • Visitante
Re:consulta a acces
« Respuesta #4 en: Julio 12, 2011, 11:10:19 pm »
tus campos en la base de datos estan tipo fecha y delimitados a solo fecha y no fecha hora?

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:consulta a acces
« Respuesta #5 en: Julio 13, 2011, 10:55:06 am »
Hola,

Pensaba que no lo tenías tipo fecha. En ese caso cambias la comilla simple por #

Código: [Seleccionar]

consulta_dia.Open "SELECT * FROM registro where dia >= #" & fecha2.Value & "# and dia <= #" & fecha3.Value & "#", conexionBD, adOpenDynamic, adLockOptimistic


Allí debería funcionar si trabajas con el tipo de campo fecha.

o puedes hacerlo así

Código: [Seleccionar]

consulta_dia.Open "SELECT * FROM registro where dia BETWEEN #" & fecha2.Value & "# and #" & fecha3.Value & "#", conexionBD, adOpenDynamic, adLockOptimistic


Verifica y me avisas....!
Miguel Núñez.