• Domingo 22 de Diciembre de 2024, 10:15

Autor Tema:  Sentencia Sql  (Leído 2394 veces)

MeLaT

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Sentencia Sql
« en: Miércoles 27 de Junio de 2007, 19:48 »
0
Tengo un DataReport1 que muestra un informe con registros por fechas que estan dentro de un rango (DATE1 y DATE2, son las variables que almacenan esas fechas, en un formulario se especifican esas fechas y se guardan como variables globales).

En el código del DataEnvironment tengo esto:

Código: Text
  1. Private Sub DataEnvironment_Initialize()
  2.    Me.Commands(1).CommandType = adCmdText
  3.    'la sentencia anterior es la que permite modificar el texto del command1
  4.    Me.Commands(1).CommandText = "SELECT  * FROM DIR WHERE (FECHA BETWEEN #" & DATE1 & "# AND #" & DATE2 & "#)"
  5.    ' la sentencia anterior modifica la sentencia SQL y permite que cuando cargue el DataEnvironment las fechas estén dentro del rango DATE1 y  DATE2
  6. End Sub
  7.  

Pues ahi esta el reporte, pero hay ciertas cosas que no me permite hacer el DataReport, como el poner campos de la tabla al pie del informe, etc. Y por eso agregué un reporte Crystal Reports, tratando de hacer lo mismo y cambiar la sentencia SQL, tengo en la parte de código del reporte:

Código: Text
  1. Private Sub Report_Initialize()
  2. Report.SQLQueryString = "SELECT * FROM  DIR WHERE (FECHA BETWEEN #" & DATE1 & "# AND #" & DATE2 & "#)"
  3.  
  4. 'Report.SQLQueryString ="SELECT * FROM  DIR WHERE FECHA BETWEEN '" & DATE1 & "' AND '" & DATE2 & "'"
  5.  
  6. End Sub
  7.  

Trate con esas dos sentencias pero no cambia nada, abre el reporte con la sentencia que tenia:

Código: Text
  1. SELECT * FROM DIR
  2.  

Me parece que me falta alguna sentencia que permita hacer el cambio del texto del comando como en el DataReport, o son otras intrucciones, o algo asi ?!

Cualquier comentario lo agradecería.
Información no compartida es información desperdiciada". Bueno, eso digo yo. - , les recordé.

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sentencia Sql
« Respuesta #1 en: Jueves 28 de Junio de 2007, 00:50 »
0
hola

me apego a lo ultimo de
Citar
Cualquier comentario lo agradecería.

Tengo tanto tiempo frente al Pc que ya tengo seco el cerebro y no sé si entendi bien tu post pero en caso de que el reporte no te este trayendo correctamente los datos por eso de las fechas, es decir, que en vez de tomar el
WHERE FECHA BETWEEN '" & DATE1 & "' AND '" & DATE2 & "'"
o el
FECHA BETWEEN #" & DATE1 & "# AND #" & DATE2 & "#)

Sino que sale el query como si fuese un simple
SELECT * FROM DIR

Pues tal vez deberias probar darle un Format a los campso de fecha
FECHA BETWEEN #" & Format(DATE1, "yyyy-mm-dd") & "# And #" & Format(DATE2, "yyyy-mm-dd") & "#"

Bueno dependiendo del tipo de BD pues entre # # o entre ' '
Hay BDs que guardan los campos fechas en ese orden y hay que pasarselo igual porque sino, jamas se traera nada.

Bueno si no es eso, o no dio en el detalle lo expuesto, perdona y ojala que des con la solution pronto.  :good:
Si esto es Leído por accidente, induzca al vomito

MeLaT

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Sentencia Sql
« Respuesta #2 en: Jueves 28 de Junio de 2007, 18:21 »
0
Ok Usercode  :hola: , lo intentaré con formato a ver si algo sucede  :P . Aunque si se tratara de que la sentencia esta mal, tal vez debería mandarme un error o algo no ?!

Simplemente lee la instrucción pero la pasa de largo, no marca error ni na' . . .  <_<  .

Código: Text
  1. Report.SQLQueryString = "SELECT * FROM  DIR WHERE (FECHA BETWEEN #" & DATE1 & "# AND #" & DATE2 & "#)"
  2.  
Información no compartida es información desperdiciada". Bueno, eso digo yo. - , les recordé.

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sentencia Sql
« Respuesta #3 en: Jueves 28 de Junio de 2007, 20:20 »
0
uhmmm... yo creo que no debe sacar error (bueno no toy seguro ahorita) no me acuerdo, se le da que busca todos los registors con estas fechas, por ejemplo, desde el 20/07/2007 al 28/07/2007, pero él va y ve que no hay porque las fechas las compara con 2007/07/27, de hecho, no deberia traerse nada tampoco, bueno ojala que puedas solventarlo, cualquier cosa indica el tipo de BD que usas, el tipo de conexión a la misma, haber si alguien que ha lidiado con eso asi, sepa y exponga su opinion.

 :hola:
Si esto es Leído por accidente, induzca al vomito