Relleno automático de cuadro de texto

Tengo una base access en la que quiero registrar las revistas que entran en una biblioteca. Para ello he creado una tabla "revistas" con varios campos como Titulo, editorial, issn, número de registro, año, etc
He hecho un formulario apara que se pueda desde él agregar nuevos registros llamado "revistas". Tengo un cuadro combinado denominado "listatitulo"desde donde se elige el titulo de la revista, Y varios cuadros de texto: "editorial", "issn", "número de revista, "años". Lo que me gustaría es que al escoger el titulo de la lista desplegable se rellenaran automáticamente los cuadro de texto "editorial" e "issn" ya que es una información que siempre es la misma; y por otra parate que en los cuadros de texto "número de revista" y "años" se pudiera agregar texto libremente.
Quisiera también que toda esta información se fuere viendo en un subformulario insertado en el formulario desde que agrego los registros. ¿Es posible?
No tengo mucho conocimiento de access así que espero haberme explicado correctamente.

1 respuesta

Respuesta
1
La primera opción es utilizar el propio cuadro combinado listatitulo. A ese cuadro de texto le añades las columnas de editorial e issn (ocultas o no, a discreción).
Después manejas el evento AfterUpdate (Después de actualizar) de ese cuadro combinado para traspasar el valor a los controles correspondientes. Para ello utilizamos la propiedad Column del cuadro combianado indicando el indice de la columna. Los indices empiezan por 0, por lo que la segunda columna es 1, la tercera es 2, etc.
Me!editorial = Me!listatitulo.Column(1)
Me!issn = Me!listatitulo.Column(2)
En cuanto a lo de mostrar la información en un subform...
Añade un subform en el mismo formulario basado en la misma tabla y, en los eventos AfterUpdate (Después de actualizar) y AfterInsert (Después de insertar) del formulario, haz un requery del subformulario:
Me!miControlSubformulario.Form.Requery
Si utilizas Access 2007 ya tiene una opciñon llamada Formulario dividido que lo hace sólito.
http://www.aesoft-databases.com
Gracias por tu rapidez en contestar. Lo pruebo y te cuento
Hola de nuevo,
No doy con ello. Volví a hacer todo de nuevo: una tabla llamada REVISTAS; usé el asistente para crear un formulario dividido. En la parte del formulario puse un cuadro combinado llamado TITULO, le añadí las columnas:
SELECT [REVISTAS].[Id], [REVISTAS].[TÍTULO], [REVISTAS].[ENTIDAD], [REVISTAS].[PUBLICACIÓN], [REVISTAS].[ISSN], [REVISTAS].[CDU], [REVISTAS].[NOTAS] FROM REVISTAS ORDER BY [TÍTULO];
Añadí los cuadros de texto correspondientes.
En el código incluí:
Private Sub TÍTULO_AfterUpdate()
Me!ENTIDAD = Me!TÍTULO.Column(3)
Me!PUBLICACIÓN = Me!TÍTULO.Column(4)
Me!ISSN = Me!TÍTULO.Column(5)
Me!CDU = Me!TÍTULO.Column(6)
Me!NOTAS = Me!TÍTULO.Column(7)
End Sub
No sé qué tengo mal porque no funciona. ¿En los cuadros de texto tengo que establecer alguna propiedad especial?
En cuanto al subformulario, me gustaría que el registro no apareciera hasta estar completos todos los campos del formulario, ¿quizá con un botón agregar?
Gracias de nuevo por tu paciencia :)
Vista la SQL y como has utilizado después los indices, hay algo que no te quedó claro sobre la forma de contar columnas.
ENTIDAD es la tercera columna de la SQL, con lo que su indice es 2
PUBLICACIÓN es la cuarta --> indice 3
Y así sucesivamente
No necesitas hacer nada especial en los cuadros de texto a excepación de indicar, en la propiedad Origen del control, el campo del origen del registro donde se almacenará el valor.
Tema subformulario: Si has utilizado los eventos que te dije, no debería actualizarse hasta que no termines la edicion/adicion del registro.
Xavi

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas