Formulario y campos "vinculados"

Hola, acabo de ponerme con access y tengo una duda sobre un formulario que quiero crear.
Mi idea es un formulario con varios campos de los que al cambiar unos sólo que esté activo, varíen los otros que están relacionados pero bloqueados. Me explico:
En el formulario quiero poner un lista que es donde se elige el producto, otro cuadro que hace referencia al código de ese artículo y un último cuadro que indica en que se mide ese artículo. Lo que yo quiero hacer es que al elegir diferentes artículo vayan variando los campos "Medida" y "código" sin que estos se puedan modificar.
No se si me he explicado bien.

1 Respuesta

Respuesta
1
Para hacer lo que quieres se utilizan los eventos 'al cambiar' y 'al hacer click', entre otros.
En las propiedades del objeto elige 'procedimiento de evento' y pulsa al botón que tiene 3 puntos ("..."). Eso te llevará al editor de Visual Basic.
A partir de aquí tu sabrás lo que quieres hacer.
Supone que quieres que si el producto (cambpo llamado 'nombreProducto') es 'leche' te desactive el control 'numeroKilos' y active el campo 'numeroLitros'. En el evento 'al cambiar' pondrías:
Private Sub nombreProducto_Change()
    If Me.nombreProducto = "leche" Then
        Me.numeroKilos.Enabled = False
        Me.numeroLitros.Enabled = True
    End If
End Sub
Si quieres puedes cambiar la propiedad de bloqueado (locked) en lugar de activado (Enabled). Pero piensa que si lo haces tienes que cambiar los true por false y viceversa ya que son dos propiedades que más o menos contrarias (si desactivas es similar a bloquear y desbloquear es similar a activar).
Espero haber sido claro. Sino... insiste.
Muchas Gracias por contestar antes de nada je je.
Ya me voy aclarando un poco con las cosas, pero todavía no consigo lo que ando buscando. Creo que ahora podré explicarlo mejor.
Tengo una tabla
<<ListaProductos>> con los campos Id // Producto // Medida
otra tabla que es para editar cada producto que se llama
<<Producto>> Id // Producto // fecha // Entrada // Salida // Total // Medida
lo que yo busco es que en el formulario de cada producto al seleccionar el campo "Producto" (campo combinado) los campos "Id" y "Medida" tomen los valores que les corresponden de la tabla <<ListaProductos>> pero que no se puedan modificar.
Creo que ahora está más claro (o eso espero jejejeje)
Muchas Gracias de nuevo!
Supongo que el campo producto es un cuadro combinado que te permitirá elegir uno de los valores que hay en la tabla.
Siendo así no necesitarías el campo "id" porque en el campo producto puedes poner:
- Origen de la fila: select id,producto from listaProductos
- Número de columnas: 2
- Columna dependiente: 1
- Ancho de columnas: 0 cm, 5 cm
Con eso guardarás el id en el cuadro combinado pero se en el formulario sólo se verá el nombre del producto.
Para poner el campo "medida" en función del "id" (lo tienes en el campo combinado) sería crear un campo de texto y desactivarlo. En la propiedad "Origen del control" tendrías que poner:
= nz(dlookup("medida";"listaProductos";"id=" & [nombre del campo combinado]);"")
Creo que es todo.
Gracias de nuevo, ya me sale el desplegable (campo combinado), lo que no consigo es vincular el campo Id y el de medida al cuadro combinado, que me figuro que tirarán con la misma expresión pero cambiando "medida" por "id".
En origen de control he puedo
=nz(DBúsq("medida";"listaProductos";"id=" & [CCProd]);"")
Pero me tira un #error nada más poner la vista formulario.
Un saludo!
Esa fórmula es para ponerla en el origen del control de un textbox (desactivado) y te devuelve el campo 'medida'.
Si quieres que te ponga el "ID" en otro campo crea otro cuadro de texto y pon como origen del contro "=[CCProd]".
Así también te aseguras que CCProd tiene el ID. En caso de no tenerlo significaría que hay alguna propiedad mal en el cuadro combinado.
Mira a ver lo que ocurre y me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas