Access - Actualizar. Le mando más información de mi duda

 
Vista:

Actualizar. Le mando más información de mi duda

Publicado por Mimy (4 intervenciones) el 21/06/2007 20:46:17
Ok tengo mi BD para un punto de venta de una farmacia, mis tablas son: productos, clientes, proveedores, departamentos, personal que labora, ventas,detalle de venta, en un formulario de ventas tengo un subformulario de detalle de ventas en donde tengo Idventa, fecha, datos del cliente, personal que atendió la venta, IdProducto,Descripción,Precio,Descuento,PrecioconDescuento, CantidadExistencia, CantidadSolicitada =Cantidad,subtotal y total. En el campo CantidadSolicitada en el evento despues de actualizar tengo un código para que al momento que escriba la cantidad requerida me aparezca si hay o no y que me actualice la existencia en la tabla productos, pero tengo un error porque me actualiza toda la columna de CantidadExistencia, ej: si tengo 3 Vitacilina y pido 2 me resta esas 2 a todos los productos y solo debe ser a la vitacilina. El código que tengo es el siguiente:

Private Sub Cantidad_AfterUpdate()

Dim Actualiza As String
If Me.CantidadExistencia <= 0 Then
MsgBox "No hay Existencias de este Artículo", vbCritical, "Aviso"
Me.Cantidad.SetFocus: Me.Cantidad = 0
Exit Sub
End If
If Me.CantidadExistencia < Me.Cantidad Then
MsgBox "La Compra no puede ser mayor que las Existencias actuales." & _
Chr(10) & "Esta Compra queda reducida a " & Me.CantidadExistencia & " Unidades.", vbInformation, "Aviso"
Me.Cantidad = Me.CantidadExistencia And CantidadExistencia = 0
End If
Actualiza = "UPDATE productos SET CantidadExistencia = CantidadExistencia - Cantidad WHERE IdProducto ='" & Me.IdProducto & "'"
DoCmd.RunSQL Actualiza
Me.CantidadExistencia.Requery
If CantidadExistencia < 0 Then
CantidadExistencia = 0
End If
End Sub

Se lo agradecería muucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Actualizar. Le mando más información de mi du

Publicado por Enrique (1299 intervenciones) el 21/06/2007 21:08:29
Mimy, si tu campo IdProducto es Numérico tienes que cambiar la parte final de la Variable "Actualiza" que ahora tienes así:

Actualiza = "UPDATE productos SET CantidadExistencia = CantidadExistencia - Cantidad WHERE IdProducto ='" & Me.IdProducto & "'"

por esta otra:

Actualiza = "UPDATE productos SET CantidadExistencia = CantidadExistencia - Cantidad WHERE IdProducto =" & IdProducto

Otra cosa necesaria es que el Campo IdProducto en el Formulario debe llamarse tambien IdProducto porque si le llamas de otra forma, tienes que cambiar el IdProducto que va después del caracter & por ese otro nombre, ya que este campo es el que se utiliza en el formulario como condición para que solo actualice un Producto concreto y no todos.

Prueba ahora y nos cuentas si ya funciona o sigue igual.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar