No enviar formulario cuando ciertas celdas están rellenadas

Tengo un formulario con varios cuadros de texto a rellenar. El caso es que quiero que cuando ciertos cuadros están rellenos, no te deje escribir en otros y viceversa, es decir, que cuando éstos otros esté alguno de ellos relleno, no te deje escribir en los otros.

Para entenderlo mejor, el formulario tiene dos partes:

PRODUCCIÓN: (con varios cuadros de texto a rellenar)

OTRA OPERACIÓN: (con varios cuadros de texto a rellenar)

Sólo con que esté relleno un cuadro de PRODUCCIÓN no te tiene que dejar escribir nada en OTRA OPERACIÓN y viceversa.

1 respuesta

Respuesta
1

Sin saber la estructura del formulario es difícil decir algo. Me explico, si tengo un formulario donde diferencio las dos partes que dices por colores

En el evento Al recibir el enfoque del cuadro de texto Producto le pongo

For Each Control In Form.Controls
If Control.Name = "Fecha" Or Control.Name = "cliente" Or Control.Name = "total" Then
If Not IsNull(Control) Then
Producto.Enabled = False
ElseIf Control.Name = "Fecha" Or Control.Name = "cliente" Or Control.Name = "total" Then
If IsNull(Control) Then
Producto.Enabled = True
End If
End If
End If
Next

Con lo cual, cuando recibe el enfoque, si hay algo escrito el los controles naranja, el campo Producto está inhabilitado. Y viceversa el control Cliente

Private Sub Cliente_GotFocus()
For Each Control In Form.Controls
If Control.Name = "producto" Or Control.Name = "precio" Or Control.Name = "cantidad" Then
If Not IsNull(Control) Then
Cliente.Enabled = False
ElseIf Control.Name = "Fecha" Or Control.Name = "cliente" Or Control.Name = "total" Then
If IsNull(Control) Then
Cliente.Enabled = True
End If
End If
End If
Next

End Sub

O sea, que si en los controles verdes hay algo escrito, el control Cliente está inhabilitado.

Pero como te decía, al no saber la estructura del formulario...

Por si quieres simplificar el código

La estructura es la siguiente, al lado de cada palabra pongo la función que tienen en el formulario: (lo del .ENABLED no me lo coge, no se si he escrito mal o que)

PRODUCCIÓN: (etiqueta)

Referencia (cuadro de texto)

Nº Lote (cuadro de texto)

Metros reales (cuadro de texto)

Nº Piezas (cuadro de texto)

Piezas OK (cuadro de texto)

Piezas NOK (cuadro de texto)

OTRA OPERACIÓN: (etiqueta)

Operación (cuadro de texto)

Observaciones (cuadro de texto)

Cuando los cuadros de texto que forman parte de PRODUCCIÓN, alguno de ellos esta lleno, no deben poder acceder a los de OTRA OPERACIÓN y viceversa.

Es raro que no te coja lo de enabled. Creo que lo mejor es que si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo con tus campos. Si lo haces, en el asunto del mensaje pon tu alias Albert, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas