• Domingo 22 de Diciembre de 2024, 19:45

Autor Tema:  Re: SQL en vb  (Leído 1396 veces)

Omarrpat

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: SQL en vb
« en: Miércoles 28 de Mayo de 2003, 17:04 »
0
Que tal amigo tengo el siguiente problema con sql aplicado en un recordset en vb, el sql enseguida:

    strCadGenerica = "SELECT tblNotificaciones.IDNotificacion, tblNotificaciones.Fecha, tblAfectado.Edad, "
    strCadGenerica = strCadGenerica & "tblAfectado.IDSexo, tblAfectado.IDEstado, tblNotificaciones.IDDiaSemana, "
    strCadGenerica = strCadGenerica & "tblNotificaciones.IDSitio, tblNotificaciones.EdadAgresor, tblNotificaciones.IDSexo, "
    strCadGenerica = strCadGenerica & "tblNotificaciones.IDServicioAtencion, tblNotificaciones.AvisoMinisterioPublico "
    strCadGenerica = strCadGenerica & "FROM tblAfectado INNER JOIN tblNotificaciones ON tblAfectado.IDAfectado = tblNotificaciones.IDAfectado "
    'strCadGenerica = strCadGenerica & "WHERE (((tblNotificaciones.Fecha)>=#" & dtFechIni & "#) AND ((tblNotificaciones.Fecha)<=#" & dtFechFin & "#));"
    'strCadGenerica = strCadGenerica & "WHERE (((tblNotificaciones.Fecha)>=#" & dtFechIni & "# And (tblNotificaciones.Fecha)<=#" & dtFechFin & "#));"
    strCadGenerica = strCadGenerica & "WHERE ( ((tblNotificaciones.Fecha)>=#" & dtFechIni & "#) And ((tblNotificaciones.Fecha)<=#" & dtFechFin & "#) );"
   
   
este trabaja correctamente en acces pero cuando lo parametrizo me da problemas, ademas si cambio el And por un Or da resultados, pero si lo dejo con un And, el recordset contiene 0 registros.
necesito la ayuda urgente, este codigo es para seleccionar en un periodo de tiempo, entre fechas es decir.
gracias por su ayuda.:ayuda:

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: SQL en vb
« Respuesta #1 en: Miércoles 28 de Mayo de 2003, 17:55 »
0
Hola Omarrpat:

A ver si te ayudo...

Lo primero es que colocaste tres veces la clausula WHERE, solamante necesitas colocarla una vez, no más! ahh, y quítale el punto y coma al final de la sentencia (";").

Lo segundo es que debes cerciorarte de que las variables "fechIni" y "FechFin" se hayan declarado de typo Fecha; Lo puedes hacer así:

fechaini = date()
fechafin = date()

o.... en la sentencia SQL puedes darle formato a la variable así:

"Select ..... From .... Where tabla.campo >= #" & Format(FechIni, "dd/mm/yyyy") & "# and tabla.campo <= #" & Format(FechFin, "dd/mm/yyyy") & "#"

Estudia y Consulta más acerca de la función Format(), es muy buena.

Espero te sirva....
....
Saludos...

Mellileo!!

Majuhemo

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: SQL en vb
« Respuesta #2 en: Miércoles 28 de Mayo de 2003, 18:01 »
0
Hola:
yo creo que:

(((tblNotificaciones.Fecha)>=#" & dtFechIni & "#) AND ((tblNotificaciones.Fecha)<=#" & dtFechFin & "#));"

puedes resumirlo con

tblNotificaciones.Fecha Between #" & dtFechIni & "# AND #" & dtFechFin & "#;"

no estoy muy seguro con el # ; no he trabajado con Access en SQL Server le pongo    '    = apostrofe  para indicarle intervalo de fechas, revisa y a ver como te va.

Saludos;
Ruben Delgado A.
rudela@msn.com
Lima-Peru

Omarrpat

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Re: SQL en vb
« Respuesta #3 en: Jueves 29 de Mayo de 2003, 21:16 »
0
Quedo igual, pero es muy raro en ocaciones trabaj y otras no, creo que el rs no se refresca es decir si cierro el reporte, y luego lo vuelvo a abrir, aparece el mismo , es recorset no se refresca, y deberia de hacerlo :think:


pero muchas gracias por tratar de hecharme la mano

:beer:

lo curioso es que las consultas si las realizo con fechas en especifico, no con variables trabajan bien   :question:
como
Between #01/01/2003# AND #28/02/2003#

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
SQL en vb
« Respuesta #4 en: Jueves 29 de Mayo de 2003, 21:35 »
0
Entonces despues de generar la sentencia SQL  refresca el RecordSet con .refresh o .requery

Así se actualiza el recordset que necesitas o depura el programa paso a paso con la tecla F8 y verifica el contenido de las variables tipo fecha que estas trabajando, ya que puede ser que cuando ejecutas por primera vez el reporte, las variables tengan el contenido que necesites, pero cuando lo ejecutes por segunda vez, sigan teniendo el mismo contenido..... No sé, aveces pasa!

Suerte!!!!!:suerte:
Saludos...

Mellileo!!