Validar stock

Tengo tres tablas:
Bobinas: numbob, ancho, largo, espesor, calidad, ffab, fenv, stock(sí/no)
Salidas: numenv, cliente, fenv
Detallesalidas: numbob, numenv, fenv
El stock estará disponible sí no tiene fenv (fecha de salida), sí tiene fenv, pues no estaría en stock.
Tengo un formulario, con salidas como principial, y detallesalidas como subformulario, la cosa es que cuando meta el numbob en detallesalidas, si está en stock que me deje meterlo, si no... Pues no. Sí la bobina está disponible, pues cuando meta fenv, se actualice en la tabla de bobinas.
Esto es muy complicado ¿?

1 respuesta

Respuesta
1
Te explico como debes hacerlo. El supuesto para que el código funcione será que el valor de fenv que tienes en el form principal sea el mismo que fenv para el subformulario.
1.- Abre el subformulario detallesalidas en vista diseño. Sacas las propiedades del campo numbob y
->Pestaña Eventos->Después de actualizar-> Te colocas en la parte blanca que hay a la derecha y te aparecerá un pequeño botón con puntos suspensivos. Haces click sobre él y en la ventana que te sale le dices que quieres generar código.
2.- Se te abrirá el VBE. Ahí tienes que escribir el siguiente código:
---
Private Sub numbob_AfterUpdate()
Dim vBob, vTBob As Variant
Dim rst As Recordset
Dim vFecha, vTfecha As Variant
Dim vstoc As Boolean
vBob = Me.numbob.Value
If IsNull(vBob) Then Exit Sub
vFecha = Forms!Fsalidas.fenv.Value
Set rst = CurrentDb.OpenRecordset("bobinas", dbOpenTable)
If rst.RecordCount = 0 Then
MsgBox "La tabla bobinas no contiene ningún registro", vbInformation, "AVISO"
GoTo Salida
End If
rst.MoveFirst
Do Until rst.EOF
vTBob = rst.Fields("numbob").Value
vTfecha = rst.Fields("fenv").Value
If vTBob = vBob Then
If IsNull(vTfecha) Then
With rst
.Edit
.Fields("fenv").Value = vFecha
.Fields("stock").Value = False
.Update
End With
Exit Do
Else
MsgBox "No hay stock disponible", vbInformation, "SIN STOCK"
Me.numbob.Value = Null
Exit Do
End If
End If
rst.MoveNext
Loop
Salida:
rst.Close
Set rst = Nothing
End Sub
---
Te he marcado en negrita FSalidas. Debes cambiar esto por el nombre de tu formulario principal (si el nombre contiene espacios tienes que ponerlo entre corchetes. Quedaría algo asi: vFecha = Forms![Forms salidas].fenv.Value)
Y eso es todo.
Si tienes algún problema me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas