Autor Tema: error Sintaxis consulta SQL Visual Basic  (Leído 6531 veces)

Miguis

  • Sin experiencia
  • *
  • Mensajes: 5
    • Ver Perfil
error Sintaxis consulta SQL Visual Basic
« en: 15 de Octubre 2013, 18:44 »
SQL3 = "SELECT * FROM checador WHERE [NumEmp] =" + NumEmp.Text + "#and [fecha] =#" + fecha1.Text + "#"
no me hace este filtro, necesito saber exactamente la sintáxis en VB6 para la fecha que estoy buscando, en la base de tabla checador fecha es de tipo fecha corta.
Por favor denme una mano. Gracias :)
« Última modificación: 05 de Septiembre 2014, 09:46 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:Alguien me dice el error de Sintaxis por favor
« Respuesta #1 en: 15 de Octubre 2013, 23:02 »
¿Qué tipo de dato es fecha1 cuando lo has declarado en Visual BAsic?

¿Si haces la consulta:

SQL3 = "SELECT * FROM checador WHERE [NumEmp] =" + NumEmp.Text + "#"

¿Te funciona correctamente aunque no te devuelva lo que quieres? (Es para comprobar si te conecta bien a la base de datos) y ¿qué tipo de base de datos es la que usas? Saludos

Miguis

  • Sin experiencia
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Alguien me dice el error de Sintaxis por favor
« Respuesta #2 en: 16 de Octubre 2013, 20:01 »
Gracias Javi in the sky mira fecha1.text es un objeto que esta proyectando una fecha cuyo formato es format(fecha1.text, "dd/mm/yyyy") y
el SQL3 = "SELECT * FROM checador WHERE [NumEmp] =" + NumEmp.Text
sin el And se conecta perfectamente a la base de datos.... Pero ya agregandole el
 + "#and [fecha] =#" + fecha1.Text + "#" me dice que falta el operador que es error de syntaxis. ahora si lo pongo así:
SQL3 = "SELECT * FROM checador WHERE [NumEmp]=" + NumEmp.Text + " And [fecha] =#" + fecha1.TEXT + "#" quitandole al AND el signo de # no me hace el filtro.
Podrían ayudarme ya tengo rato con esto, y es el checador de la empresa donde trabajo,
gracias. ;)

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:Alguien me dice el error de Sintaxis por favor
« Respuesta #3 en: 17 de Octubre 2013, 08:08 »
¿Has probado a usar el operador & en lugar de el operador +? Es decir, la consulta quedaría así:

SQL3 = "SELECT * FROM checador WHERE [NumEmp] =" & NumEmp.Text & "AND [fecha] =" & fecha1.Text & ""

Una cosa que deberías probar es ponerle una fecha concreta a ver si ejecuta la consulta, por ejemplo:

SQL3 = "SELECT * FROM checador WHERE [NumEmp] =" & NumEmp.Text & "AND [fecha] =05/02/2013" & ""

Si te ejecuta esta consulta (con una fecha que tú quieras que tenga datos en la base de datos) ya habrás avanzado algo.

Miguis

  • Sin experiencia
  • *
  • Mensajes: 5
    • Ver Perfil
Re:Alguien me dice el error de Sintaxis por favor
« Respuesta #4 en: 17 de Octubre 2013, 19:48 »
Por alguna razón que no entiendo no me sigue haciendo el filtro del SQL, cambiando el operador + por el que me enviaste &, lo que me dí cuenta es que anteriormente en la tabla de checador fecha estaba de tipo Texto y lo cambie a tipo fecha/hora y ahora tuve que hacer una tabla checador1, para tener fecha de tipo texto, entonces si me hizo el filtro...por la premura de mi tiempo y avanzar que ya tengo una semana con esto lo dejaré así...
pero me gustaría que lo siguieramos viendo. Quiero aprender esto... A donde puedo mandar mi programa para que vean el filtro detalladamente y mi base de datos.

Mi sentencia quedó:
SQL3 = "SELECT * FROM checador1 WHERE [NumEmp]= " + NumEmp.Text + "And [fecha] =" + "'" + fecha1.Text + "'"
  Set mytable = Mydb3.OpenRecordset(SQL3, dbOpenDynaset)
   If mytable.RecordCount > 0 Then
      Set Data5.Recordset = mytable
      If Not IsNull(mytable.Fields("hora1")) Then
         hora1.Text = mytable.Fields("hora1")
      End If
   end if
y ahora si me muestra el campo hora1 de ese empleado y en esa fecha.
(Quiere decir que no me filtra por que no coincide el tipo de datos con mi sentencia SQL especialmente en las fechas).

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:Alguien me dice el error de Sintaxis por favor
« Respuesta #5 en: 18 de Octubre 2013, 14:27 »
Estimado! El aprendizaje de la programación es tarea de años y aún así ni los programadores expertos son capaces de resolverlo todo debido a la cantidad de lenguajes y versiones y cambios de tecnología, al final hay que ser como has hecho, práctico y resolver para seguir avanzando aunque no sea de la manera perfecta  ::)


 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".