none
Error de sintaxis RRS feed

  • Pregunta

  • Hola,  Soy nuevo en esto y no se como planteart el proble.

    En concreto el problema es que estoy aciendo una aplicacion auxiliar contable a nivel local, y la pntalla principal al momento de llamar un codigo de un listado de productyos me sale el error "ERROR DE SINTAXIS EN LA CADENA EN LA EXPRESION DE CONSULTA"

    Y EL CÓDIGO DONDE CREO QUE ESTA EL ERROR ES ESTE FRAGMENTO

    codBarraProd = Me.CodProd.Value
    sql = ("SELECT *FROM (PRODUCTOS)WHERE(COD_BARRAS)='" & codBarraProd & "")

    Set rs = CurrentDb.OpenRecordset(sql)

    If rs.BOF And rs.EOF Then
    MsgBox "VERIFIQUE CODIGO DE BARRAS, PRODUCTO NO EXISTE", vbOKOnly, "INEXISTENTE"
    Else
    precioProd = rs!PRECIO_TOTAL
    descripcionProd = rs!DESCRIPCION

    REALEMENTE SOY UN POCO NUEVO EN ESTO Y NO SE COMO SOLUCIONAR ESTO...

    DE ANTEMANO... MUCHAS GRACIAS

    • Cambiado Enrique M. Montejo domingo, 21 de junio de 2015 7:56 Programación en Access (Visual Basic para Aplicaciones)
    viernes, 19 de junio de 2015 10:53

Todas las respuestas

  • Supongo que ese código es de VB6.

    Pero decirte que la consulta debe ser así

    sql = "SELECT * FROM  PRODUCTOS WHERE COD_BARRAS ='" & codBarraProd & "'"

    verifica los espacios entre palabras clave y quita los parentesis


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    viernes, 19 de junio de 2015 11:19
  • Hola jhon,

    Tienes que separar con espacios la cadena de consulta y añadir la comilla al final:

    sql = "SELECT * FROM (PRODUCTOS) WHERE (COD_BARRAS)='" & codBarraProd & "'"


    Saludos, Javier J

    viernes, 19 de junio de 2015 11:21
  • REALICE EL CAMBIO Y ME BOTA UN NUEVO ERROR.....

    NO COINCIDEN LOS TIPOS DE DATOS EN LA EXPRESIÓN DE CRITERIOS.

    AGRADECERÉ SU ATENCIÓN..... MUCHAS GRACIAS

    viernes, 19 de junio de 2015 16:10
  • EL CODIGO ESTA ASI

    sql = "SELECT * FROM (PRODUCTOS) WHERE (COD_BARRAS)='" & codBarraProd & "'"

    viernes, 19 de junio de 2015 16:11
  • Hola jhon,

    ¿Cuál es el objetivo de los paréntesis?

    sql = "SELECT * FROM PRODUCTOS WHERE COD_BARRAS='" & codBarraProd & "'"

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    viernes, 19 de junio de 2015 16:15
  • ps ME HABIAN DICHO QUE DEBIA IR ENTRE PARENTESIS..... PERO DE IGUAL MODO SE LOS QUITO... Y ME GENERA EL. MISMO ERROR 

    NO COINCIDEN LOS TIPOS DE DATOS EN LA EXPRESIÓN DE CRITERIO

    MUCHAS GRACIAS


    viernes, 19 de junio de 2015 16:22
  • Hola

    Primero, ¿qué tipo de dato tiene la columna COD_BARRAS en la tabla?

    Segundo, ¿qué tipo de dato es la variable codBarraProd?

    Tercero, ¿has intentado crear un punto de interrupción en la línea { CodBarraProd = Me.CodProd.Value } para saber el valor que obtiene la variable CodBarraProd?

    Cuarto, Conociendo el valor que tiene la variable, ¿has intentado ejecutar la consulta en una ventana de SQL Server Managment Studio?

    viernes, 19 de junio de 2015 16:27
  • HOLA

    EN LA TABLA ESTA LA COLUNMA COD_BARRAS DE TIPO NUMERO

    Y LA VARIABLE codBarraProd es String

    El punto de interrupción no lo se hacer

    y nunk e usado ese SQL server managment Studio

    viernes, 19 de junio de 2015 16:39
  • seguramente el codigo de barras sea un campo numérico en tu base de datos. Prueba

    sql = "SELECT * FROM  PRODUCTOS WHERE COD_BARRAS = " & codBarraProd

    los campos numéricos no usan la comilla simple ' ' pra establecer el valor eso es para campos cadena de la bbdd


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    viernes, 19 de junio de 2015 16:45
  • Ufff estamos en problemas.

    A ver.

    ¿Qué tipo de control es CodProd?

    Segundo, si la columna COD_BARRAS es numérica entonces no tiene sentido que coloques las comillas simples, aún así, su uso tampoco generaría ningún error.

    En tiempo de ejecución has clic en detener ejecución y posicionate en la linea CodBarraProd = Me.CodProd.Value y presiona [F9], luego selecciona Me.CodProd.Value y presiona SHIFT+F9. Ello te devolverá el valor del control que se asignará a la variable.


    viernes, 19 de junio de 2015 16:51
  • hola... en el momento de generar el cambio y realizar la ejecución aparece un nuevo error que dice

    PARA PODER UTILIZAR ESTE MÉTODO, LA PROPIEDAD TIPODEORIGENDELAFILA DEBE ESTABLECERSE EN 'LISTA DE VALORES'

    MUCHAS GRACIAS.... JHON GUARNIZO

    viernes, 19 de junio de 2015 17:10
  • Definitivamente tienes más de un problema. Sin mucha información o sin conocer el contexto no puedo hacer mucho.
    viernes, 19 de junio de 2015 17:16
  • CodProd es un textbox

    ya quite las comillas y me dio un error ya descrito en uel comentario anterior

    y el resultado del proceso de ejecucion es

    Contexto

    Database5.Form_ventas.cmdMarcar_click

    Expresion

    Me.CodProd.Value

    Valor

    <Fuera de contexto>

     y hay tres botones

    Agregar

    Cancelar

    Ayuda

    que pena pero no me deja enviar imagenes

    viernes, 19 de junio de 2015 17:35
  • pero estas programando Access!! Haber empezado por ahí. No das mucha info la verdad,

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 19 de junio de 2015 18:55
  • jajjaja.. si es en access pero creo haber dicho eso en la primera consulta....

    muchas gracias

    viernes, 19 de junio de 2015 19:43