¿Como hacer para que Access 2007 rellene un campo en función de los valores que introduzca en otro?

Necesito que al escribir en una columna un valor por ejemplo 001 automáticamente tome el valor de una tabla y me ponga en el campo de al lado rojo.

Supongo que será muy fácil pero no lo consigo.

1 respuesta

Respuesta
1

Supongamos que el cuadro de texto de al lado se llama( Propiedades-Otras-Nombre) Vecino. En el evento después de actualizar del control, donde escribes o eliges ese número( que por lo que veo es texto) al que llamaremos NumFactura, crea un procedimiento de evento y entre Private Sub y End Sub escribe

Vecino=dlookup("nombredelcampodondedebebuscar","nombredelatval","numfactura='" & me.numfactura & "'")

Muchas gracias.

Estoy intentando ponerlo en práctica. ¿que significa o para que sirve el me de "me.numfactura"

Cuando estás en el editor de VB la palabra Me equivale al nombre del formulario activo y numfactura alude al control al que te quieras referir de la colección controles del formulario. Por ejemplo, vamos a suponer que estás en el formulario Clientes y quieres referirte al cuadro de texto Dirección, en vez de poner

Forms! Clientes! Dirección pones simplemente me. Dirección

Y como de lo que se trata es escribir lo menos posible(esto está hecho para nosotros los vagos) se pone me.

En esencia le decía Una vez que escribas el número Busca(dlookup) en el campo POR de la tabla Y en aquel registro en que el campo numfactura sea igual al que figura en ese momento en el control Numfactura.

Tuve que salir por eso no pude continuar. Supongamos que tengo una tabla

Supongamos que tengo un formulario, en este caso es independiente pero daría igual, en el que tengo un combinado, al que he llamado Elegir

En Datos- origen de la fila le pongo

Select ciudad from clientes;

Y en la solapa Eventos-Despues de actualizar

Hago clic en el rectángulo blanco a la derecha del ese evento y pulso primero en la flechita y selecciono Procedimiento de evento y después pulso el botón de tres puntos y se abre el editor de VB, y entre Private Sub y End sub le pongo

Texto2 = DLookup("nombrecompañia", "clientes", "ciudad='" & Me.Elegir & "'")

Es decir, busca en el campo NombreCompañia de la tabla clientes el valor, en aquel registro en que el campo Ciudad sea igual al que acabo de elegir en el combinado Elegir

Si elijo Cartagena

Muchas gracias, así está muy claro.

Al intentar hacer tu ejemplo me ha surgido una duda. Para los desplegables normalmente utilizo: tipo de datos / asistente para búsquedas y luego otra tabla. ¿Como funciona lo de Datos origen que parece más útil? Es que no he logrado que funcione, estaré haciendo algo mal supongo.

Si utilizas el asistente para crear un combinado o un cuadro de lista dejas en manos de él, lo que va a poner, que columna dependiente va a usar, lo que va a mostrar, etc. Personalmente prefiero "diseñarlos" a mi manera. Cuando se abre el asistente, lo cierro y luego le digo, en su origen de la fila lo que debe mostrar, la columna que debe guardar(columna dependiente), si debe mostrar una o varias columnas(formato-numero de columnas), el ancho que debe tener cada columna, si debe guardar el valor de la columna dependiente en algún campo(origen del control), etc.

Buenas tardes:

Siento ser pesado pero no logro ejecutar esto. ¿Podrías mandar una captura de como se escribe esa instrucción?

Muchas gracias

Primero te lo voy a mandar escribiendo en cuadro de texto y en la ampliación eligiendo de un combinado. Tengo una tabla

Por otro lado tengo un formulario

Si escribo el valor que ves y pulso Enter

El código del evento Después de actualizar del cuadro de texto NumApunte es

Como lo que se escribe en el cuadro de texto Numapunte es texto la instrucción es así. Es decir, busca en el campo Fecha de la tabla1 en aquel registro en que el valor del campo Codigo sea igual a lo que acabo de escribir.

Es el mismo formulario pero cambiando el cuadro de texto por un combinado

Donde pone Origen de la fila es donde se le dice lo que quieres que muestre. En este caso como le digo que seleccione los valores del campo codigo de la tabla1 me aparecerán 001 y 002.

Luego le digo que en la solapa Eventos- Después de actualizar(es decir, después de elegir un valor).

Primero pulsas en el botón de generar(tres puntos) marcado con el 1 y se abre la ventana. Eliges el 2 y pulsas en acetar(3). Se abre la ventana del editor de VB y pones el código exactamente igual que antes. El formulario lo tendrías así

Y así sólo tendrías que escoger y no escribir.

El último intento y si no ya desisto del todo.

Cuando hago el ejemplo que has mandado, que es muy sencillo, me sale este error en NumApunte.

y otra duda ¿donde puedo ver la estructura de dLookup?, me refiero a saber como cambia cuando pones  ' o [ o cosas semejantes.

Muchas gracias

Eso pasa cuando haces referencia a un control que no se llama así, El nombre de los controles es el que aparece en sus propiedades-Otras-Nombre

De todas formas, si quieres, repito, si quieres mándame un mensaje (sólo el mensaje) a [email protected] y te mando varios ejemplos. Si lo haces, en el asunto del mensaje pon tu alias Jorge, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas