Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

sql

Estas en el tema de sql en el foro de Visual Basic clásico en Foros del Web. hola a todos, queria hacer una pregunta, tengo una BD llamada regalos.mdb y una tabla dentro que es Caja, quiero seleccionar los distintos totales de ...
  #1 (permalink)  
Antiguo 21/02/2011, 06:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
sql

hola a todos, queria hacer una pregunta, tengo una BD llamada regalos.mdb y una tabla dentro que es Caja, quiero seleccionar los distintos totales de la tabla Caja que sean igual al dia que esta corriendo en el ordenador, es para hacer una Z diaria de la Caja, el codigo que pongo es el siguiente:

Dim base as database
Dim rs as recordset
dim dia as date
dia=date
set base=opendatabase("C:\regalos.mdb")
set rs=base.openrecordset("Select distinct total from Caja where fecha=dia")


y me aparece el siguiente error: "Pocos parametros. Se esperaba 1" y me marca la sentencia sql como error. Gracias de antemano.
  #2 (permalink)  
Antiguo 21/02/2011, 09:28
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: sql

El problema es que estas poniendo dia y tu lo que quieres es el valor de la variable dia, o sea, hacer algo así:

Código vb:
Ver original
  1. set rs=base.openrecordset("Select distinct total from Caja where fecha=" & dia)
  #3 (permalink)  
Antiguo 22/02/2011, 06:29
 
Fecha de Ingreso: septiembre-2008
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: sql

Correcto asi me ha funcionado perfectamente, muchisimas gracias por tu aportacion gracias de verdad
  #4 (permalink)  
Antiguo 22/02/2011, 09:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: sql

Perdona que te vuelva a molestar jaj, he puesto el siguiente codigo:

Private Sub Option1_Click()
Dim base As Database
Dim rs As Recordset
Dim dia As Date
dia = Date
Set base = OpenDatabase("C:\regalos.mdb")
Set rs = base.OpenRecordset("Select distinct nticket,total,formapago from Caja where fecha=" & dia)
While Not rs.EOF
total = rs!total + total
rs.MoveNext
Wend
MsgBox (total)
End Sub

pero cuando carga el recordset, ¿porque me dice que rs.eof es true?, se sale del while y no entra nunca.
  #5 (permalink)  
Antiguo 22/02/2011, 14:52
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: sql

Hola!!
Verifica que lo que tienes en la variable DIA está en el campo FECHA de la BD, si está entonces pon el recordset asi:
Código vb:
Ver original
  1. Do While rs.EOF=false
  2.    total = rs!total + total
  3.    rs.MoveNext
  4.    Doevents
  5. Loop
Nos cuentas!!
  #6 (permalink)  
Antiguo 23/02/2011, 03:08
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: sql

Pon un punto de parada antes de abrir el recordset, comprueba que query estas mandando a base de datos y lanzala tu a mano en la base de datos a ver si te devuelve registros.

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:19.