none
Se ha producido el error 3061; en tiempo de ejecucion: Pocos parametros. Se esperaba 5 RRS feed

  • Pregunta

  • No se lo que estoy haciendo mal con lo siguiente:

    CurrentDb.Execute "UPDATE [07_Inventario] SET [07_Inventario].Cantidad = [07_Inventario].Cantidad - [08Movimientos].Cantidad, [07_Inventario].Movimiento = [08_Movimientos].id_StatusMov, [07_Inventario].Persona = [08_Movimientos].id_Persona WHERE [08_Movimientos].Procesado = FALSE AND [07_Inventario].id_Inventario = [08_Movimientos].id_Inventario;", dbFailOnError

    La ayuda dice:

    Pocos parámetros. Se esperaba <número>. (Error 3061)

    Esta consulta de parámetros requiere el número de parámetros especificado, que no suministró. Indique el número de parámetros esperado y vuelva a ejecutar la consulta.

    En algunos casos, este mensaje se genera al interpretar expresiones o nombres de campo desconocidos como parámetros de consulta. No olvide encerrar entre corchetes [] los nombres de campo que contienen espacios o puntuación.

    Y según yo... ... no me falta nada... ... ?

    Que es lo que necesito... ...

    Tengo una tabla de los movimientos que afectan el inventario con los siguientes campos:

    id_Movimiento, id_Inventario, id_StatusMov, id_Bodega, Fecha, Hora, id_Persona, Cantidad, FechaAdición, Procesado.

    La tabla del Inventario contiene los siguientes campos:

    id_Inventario, id_Grupo, id_Clase, id_Tipo, Descripción, Presentación, id_UM, Cantidad, id_Bodega, Funcional, Motivo, Movimiento, Persona

    ------------------

    Al terminar de  capturar los movimientos al inventario [salidas], necesito imprimir los que todavía "no" están procesados, hasta aquí no hay problema, el problema surge al momento de actualizar el catálogo del inventario... ... los movimientos NO procesados, afectan al catálogo del inventario en los siguientes campos:

    De acuerdo al id_Inventario afectado con movimientos NO procesados:

    Cantidad en catálogo = Cantidad en catálogo MENOS Cantidad que sale en Movimientos

    Movimiento en catálogo = Tipo de Movimiento en Movimientos

    Persona en catálogo = Persona indicada en Movimientos

    Que se supone hace el código presentado al principio, pero al ejecutar... ... sale el mensaje de error y de ahí no pasa!!!!!

    De antemano... ... Gracias por su ayuda.


    • Editado VMTapia1971 jueves, 14 de marzo de 2019 18:34
    jueves, 14 de marzo de 2019 18:30

Respuestas

  • Ya lo resolví!!!!!!!!!!

    Así queda el código:

    CurrentDb.Execute "

    UPDATE
        07_Inventario INNER JOIN 08_Movimientos ON [07_Inventario].id_Inventario = [08_Movimientos].id_Inventario
    SET
        [07_Inventario].Cantidad = [07_Inventario].[Cantidad]-[08_Movimientos].[Cantidad],
        [07_Inventario].Movimiento = [08_Movimientos].[id_Movimiento],
        [07_Inventario].Persona = [08_Movimientos].[id_Persona]
    WHERE
        ((([07_Inventario].id_Inventario)=[08_Movimientos].[id_Inventario]) AND (([08_Movimientos].Procesado)=False));

    ", dbFailOnError

    Lo que hice fue hacer una consulta nueva, la cambie a Consulta de actualización, cambie los campos de Actualizar a: y los Criterios:... ... ... cambie la vista de VISTA DISEÑO a VISTA SQL y... ... ... ... YA!!!!!

    Gracias a TOD@s

    • Marcado como respuesta VMTapia1971 jueves, 14 de marzo de 2019 20:18
    jueves, 14 de marzo de 2019 20:18

Todas las respuestas

  • Hola,

    En principo te falta agregar la tabla 08_Movimientos dado que estas haciendo un join:

    "UPDATE [07_Inventario],[08_Movimientos] SET [07_Inventario]............


    Victor Koch

    jueves, 14 de marzo de 2019 18:48
  • Hola Víctor Koch... ... Gracias por tu ayuda y que crees????? ahora sale:

    ---> Se ha producido el error 3061; en tiempo de ejecucion: Pocos parametros. Se esperaba 1 <---

    CurrentDb.Execute "

    UPDATE
        [07_Inventario], [08_Movimientos]
    SET
        [07_Inventario].Cantidad = [07_Inventario].Cantidad - [08Movimientos].Cantidad,
        [07_Inventario].Movimiento = [08_Movimientos].id_StatusMov,
        [07_Inventario].Persona = [08_Movimientos].id_Persona
    WHERE
        [08_Movimientos].Procesado = FALSE
        AND
        [07_Inventario].id_Inventario = [08_Movimientos].id_Inventario;

    ", dbFailOnError

    Ahora que falta y en donde????

    • Editado VMTapia1971 jueves, 14 de marzo de 2019 18:58
    jueves, 14 de marzo de 2019 18:54
  • Ya lo resolví!!!!!!!!!!

    Así queda el código:

    CurrentDb.Execute "

    UPDATE
        07_Inventario INNER JOIN 08_Movimientos ON [07_Inventario].id_Inventario = [08_Movimientos].id_Inventario
    SET
        [07_Inventario].Cantidad = [07_Inventario].[Cantidad]-[08_Movimientos].[Cantidad],
        [07_Inventario].Movimiento = [08_Movimientos].[id_Movimiento],
        [07_Inventario].Persona = [08_Movimientos].[id_Persona]
    WHERE
        ((([07_Inventario].id_Inventario)=[08_Movimientos].[id_Inventario]) AND (([08_Movimientos].Procesado)=False));

    ", dbFailOnError

    Lo que hice fue hacer una consulta nueva, la cambie a Consulta de actualización, cambie los campos de Actualizar a: y los Criterios:... ... ... cambie la vista de VISTA DISEÑO a VISTA SQL y... ... ... ... YA!!!!!

    Gracias a TOD@s

    • Marcado como respuesta VMTapia1971 jueves, 14 de marzo de 2019 20:18
    jueves, 14 de marzo de 2019 20:18