Necesito que mi formulario cambie los valores de un campo al modificarlos en otro

Hola !
Es la primera vez que escribo, y creo que lo que necesito debe ser algo bastante sencillo, pero por más que he probado no doy con ello.
Lo que necesito en un formulario es que con campos si/no, al modificar uno manualmente, otro cambie de valor, es decir, imaginate un almacen donde un campo si/no registra si un objeto esta o no en el almacen, y 3 campos si/no que indican lo que hay que hacer al recibir el objeto en el almacen, acción 1, acción 2, acción 3. Lo que quiero es que al marcar una de las 3 acciones posibles, es debido a que el objeto ha llegado al almacen, por lo que directamente el campo si/no que registra si el objeto esta en el almacen pase a valor si ¿me he explicabo bien?
Mil gracias
Fernando.

1 respuesta

Respuesta
1
OK, esto lo tienes que hacer por medio de código VB
Entra al código del formulario y pega este código :
Este código lo estoy usando teniendo en cuenta que el nombre de la casilla de verificación (donde pones si/no) se llama accion1, accion2, accion3 y la casilla donde te indica si esta o no en el almacen se llama enalmacen.
Dim a1 As Integer
Dim a2 As Integer
Dim a3 As Integer
Dim traevalor As Integer
Private Sub accion1_Click()  'Esta es la accion de la casilla de verificacion "Al hacer click"
If accion1 <> Empty Then
accion1 = accion1
Else
accion1 = 0
End If
If accion2 <> Empty Then
accion2 = accion2
Else
accion2 = 0
End If
If accion3 <> Empty Then
accion3 = accion3
Else
accion3 = 0
End If
a1 = accion1
a2 = accion2 * 1
a3 = accion3 * 1
traevalor = a1 + a2 + a3
If traevalor <= -1 Then
MsgBox "La casilla almacen tiene valor"
Me.enalmacen = -1
Else
MsgBox "La casilla almacen no tiene valor"
Me.enalmacen = 0
End If
End Sub
Private Sub accion2_Click()
If accion1 <> Empty Then
accion1 = accion1
Else
accion1 = 0
End If
If accion2 <> Empty Then
accion2 = accion2
Else
accion2 = 0
End If
If accion3 <> Empty Then
accion3 = accion3
Else
accion3 = 0
End If
a1 = accion1
a2 = accion2 * 1
a3 = accion3 * 1
traevalor = a1 + a2 + a3
If traevalor <= -1 Then
MsgBox "La casilla almacen tiene valor"
Me.enalmacen = -1
Else
MsgBox "La casilla almacen no tiene valor"
Me.enalmacen = 0
End If
End Sub
Private Sub accion3_Click()
If accion1 <> Empty Then
accion1 = accion1
Else
accion1 = 0
End If
If accion2 <> Empty Then
accion2 = accion2
Else
accion2 = 0
End If
If accion3 <> Empty Then
accion3 = accion3
Else
accion3 = 0
End If
a1 = accion1
a2 = accion2 * 1
a3 = accion3 * 1
traevalor = a1 + a2 + a3
If traevalor <= -1 Then
MsgBox "La casilla almacen tiene valor"
Me.enalmacen = -1
Else
MsgBox "La casilla almacen no tiene valor"
Me.enalmacen = 0
End If
End Sub
Lo definí en tres bloques dados tus tres casillas así aunque marques 1 o 2 o las 3 casillas el valor de enalmacen permanecerá como SI en caso de que ningunas de las casillas de verificación tenga valor la casilla en almacen sera NO
Gracias por tu respuesta.
Pero entonces, si no hay ninguna acción seleccionada, ¿obligatoriamente en almacen figurara como NO?, no es exactamente lo que busco, lo único que quiero es que al pinchar en una acción el almacen pase a SI, pero si yo he seleccionado SI en almacen, aunque no haya ninguna acción marcada, no quiero que se cambie a no, cabe la posibilidad de que este en almacen, pendiente de asignar acción ¿me explico?
Por cierto y perdona mi inexperiencia, nunca he hecho nada con código, ¿dónde tengo que añadirlo en el formulario?
Mil gracias.
Fernando.
Ok donde encuentres en el código esto
MsgBox "La casilla almacen no tiene valor"
Me.enalmacen = 0
quita la parte que dice
me.enalmacen= 0
Con eso aunque no estén marcadas las casillas de acción te dejara el valor en la casilla enalmacen.
Para añadir el código :
Entra en el formulario en el menu donde dice "Ver" seleccionalo y te aparecerán varias opciones una de ellas es Código seleccionala y entraras al Visual Basic que esta en Access dentro de esa hoja que abrió pega el código que te envíe y ciérralo.
Recuerda que para que funcione los valores de las casillas de verificación deben de ser los que te menciono en la respuesta anterior, tu después los puedes cambiar para adaptarlo a tu proyecto.
Hola !
Gracias por tu ayuda.
Te comente que he sido programador, y lo cierto es que en cuanto le he pillado un poco la sintaxis al código que me has puesto, y en cuanto me has dicho como insertarlo, y viendo que lo que buscaba era más sencillo que lo que habías hecho (simplemente que al marcar en una acción que marque el almacen), me he creado mi propio código:
Private Sub Opción198_Click() 'Esta es la accion de la casilla de verificacion "Al hacer click en ACCION1"
If Opción198 = -1 Then ' opcion198 es ACCION1
Me.Opción167 = -1 ' opcion167 es EN ALMACEN
End If
End Sub
Private Sub Opción200_Click() 'Esta es la accion de la casilla de verificacion "Al hacer click en ACCION2"
If Opción200 = -1 Then ' opcion200 es ACCION2
Me.Opción167 = -1 ' opcion167 es EN ALMACEN
End If
End Sub
Private Sub Opción202_Click() 'Esta es la accion de la casilla de verificacion "Al hacer click en ACCION3"
If Opción202 = -1 Then ' opcion202 es ACCION3
Me.Opción167 = -1 ' opcion167 es EN ALMACEN
End If
End Sub
Mil gracias por tu ayuda.
Saludos
Fernando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas