¿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.
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.
- Compartir respuesta