none
duplicidad al ingresar los datos en la tabla RRS feed

  • Pregunta

  • Hola!

    Como novato tengo un problema:

    Al ejecutar el procedimiento, se realiza correctamente, pero a la hora de ingresar los datos en la tabla, me ingresa la solución pero duplicándome todos los datos anteriores. 

    A ver si me podeis dar una solución.

    El procedimiento es el siguiente:

    Private Sub Comando32_Click()

    On Error GoTo Err_Comando32_Click

        Dim nombreConsulta As String
        
    nombreConsulta = "MoviPedidos"
    DoCmd.OpenQuery nombreConsulta

    nombreConsulta = "MoviVentas"
    DoCmd.OpenQuery nombreConsulta

    nombreConsulta = "Act_Precio_Movimientos"
    DoCmd.OpenQuery nombreConsulta

    nombreConsulta = "Stock"
    DoCmd.OpenQuery nombreConsulta

    nombreConsulta = "Existen_Stock"
    DoCmd.OpenQuery nombreConsulta

    Exit_Comando32_Click:
    Exit Sub

    Err_Comando32_Click:
    MsgBox Err.Description
    Resume Exit_Comando32_Click


    End Sub

    jueves, 22 de agosto de 2013 13:19

Todas las respuestas

  • Hola!

    del código que muestras no se puede saber cual es el problema, habría que saber que hacen esas consultas.

    Por otra parte si esas consultas son de acción, deberías ejecutarlas con runsql, no con openquery que es para consultas de selección.


    Saludos a todos desde Huelva <br/> http://www.mvp-access.es/emilio/

    jueves, 22 de agosto de 2013 14:09
  • Las consultas del código, las cuales tienen las funciones siguientes:

    Act_Pedidos : Traslada los valores  del Formulario Pedidos a la Tabla Movimientos. (Consulta Anexada)

    Act_Ventas   : Traslada los valores del Formulario Ventas a la Tabla movimientos. (Consulta Anexada)

    Ac_Precio      : Pasa el valor precio de la Tabla Productos a la Tabla Movimientos.(Consulta Actualización)

    Ac_Stock_en_Stock : Pasa el valor del Stock de la Tabla Productos al Stock de la Tabla Movimientos.(Consulta actualización)

    Ac_Almacen_Stock :

    Una vez el valor del Stock de la tabla Movimientos se ha modificado, en mas o en menos según se haga Pedido o Venta, pasa a la columna llamada Almacén, de la cual mediante consulta "Ac_Almacen_Stock" es trasladado a la columna Stock de la Tabla Productos. De esta manera queda lisa para realizar un nuevo movimiento.

    -Gracias por adelantado-

    viernes, 23 de agosto de 2013 12:07
  • Lo siento, pero eso no me dice nada, sin ver las sentencias SQL no se puede saber lo que hacen las consultas

    Saludos a todos desde Huelva <br/> http://www.mvp-access.es/emilio/

    viernes, 23 de agosto de 2013 17:22
  •  Ola los datos que te faltaban creo que son estos :

    nombreConsulta = "Act_Pedidos"
    DoCmd.RunSQL "INSERT INTO Stock ( Nombre_Producto, Cantidad_Pedido, Fecha_Pedido, Cantidad_Venta )"
    SELECT Con_Pedidos.Nombre_Producto, Con_Pedidos.Cantidad_Pedido, Con_Pedidos.Fecha_Pedido, Con_Pedidos.Cantidad_Venta
    FROM Con_Pedidos;

    nombreConsulta = "Act_Ventas"
    DoCmd.RunSQL "INSERT INTO [Stock] ( Nombre_Producto, Cantidad_Venta, Precio_Venta, Fecha_Venta, Cantidad_Pedido )"
    SELECT Con_Ventas.Nombre_Producto, Con_Ventas.Cantidad_Venta, Con_Ventas.Precio_Venta, Con_Ventas.Fecha_Venta, Con_Ventas.Cantidad_Pedido
    FROM Con_Ventas;

    nombreConsulta = "Ac_Precio"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET Stock.Precio_Venta = [PRODUCTOS].[Precio_Venta];"

    nombreConsulta = "ac_Stock_en_Stock"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET Stock.Stock_Actual = [PRODUCTOS].[Stock_Actual];"

    nombreConsulta = "Ac_Almacen_Stock"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET PRODUCTOS.Stock_Actual = [Stock].[Almacen];"

     Al ejecutarlos me da el mensaje siguiente; Error de compilación : Error de Sintaxis.

    Gracias.

    sábado, 31 de agosto de 2013 7:50
  • No me extraña nada :S

    Tienes parte de las sentencias SQL fuera de las comillas, por otra parte no entiendo para que asignas a la variable nombreConsulta un nombre diferente en cada ocasión para luego no utilizarlo.


    Saludos a todos desde Huelva <br/> http://www.mvp-access.es/emilio/

    sábado, 31 de agosto de 2013 11:32
  • Bueno al final parece que funciona en parte ya que ingresa los datos pero sigue repitiendo todos los datos ya bajados anteriormente lo cual no lo tendría que hacer.

    Private Sub Comando25_Click()

    On Error GoTo Err_Comando25_Click

        Dim nombreConsulta As String
        
    nombreConsulta = "Act_Pedidos"

    DoCmd.RunSQL "INSERT INTO Stock ( Nombre_Producto, Cantidad_Pedido, Fecha_Pedido, Cantidad_Venta) SELECT Con_Pedidos.Nombre_Producto,Con_Pedidos.Cantidad_Pedido,Con_Pedidos.Fecha_Pedido,Con_Pedidos.Cantidad_Venta FROM Con_Pedidos;"

    DoCmd.RunSQL "INSERT INTO Stock ( Nombre_Producto, Cantidad_Venta, Precio_Venta, Fecha_Venta, Cantidad_Pedido) SELECT Con_Ventas.Nombre_Producto, Con_Ventas.Cantidad_Venta,Con_Ventas.Precio_Venta,Con_Ventas.Fecha_Venta,Con_Ventas.Cantidad_Pedido FROM Con_Ventas;"

    nombreConsulta = "Ac_Precio"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET Stock.Precio_Venta = [PRODUCTOS].[Precio_Venta];"

    nombreConsulta = "ac_Stock_en_Stock"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET Stock.Stock_Actual = [PRODUCTOS].[Stock_Actual];"

    nombreConsulta = "Ac_Almacen_Stock"
    DoCmd.RunSQL "UPDATE PRODUCTOS INNER JOIN Stock ON PRODUCTOS.Nombre_Producto = Stock.Nombre_Producto SET PRODUCTOS.Stock_Actual = [Stock].[Almacen];"

    Exit_Comando25_Click:
    Exit Sub

    Err_Comando25_Click:
    MsgBox Err.Description
    Resume Exit_Comando25_Click


    End Sub

    Gracias

    lunes, 2 de septiembre de 2013 12:32