Deseo crear un formulario en hoja de datos donde me muestre todos los registros de una tabla o consulta y al dar click en alguno de ellos abra un formulario donde este la información contenida en esta fila para poder editarla o trabajar con esta información
1 respuesta
Respuesta
1
1
Anónimo
Puedes ir haciendo esto: 1º crea un formulario, desde cero y sin el asistente. 2º crea tantos cuadros de texto como tenga la tabla donde están los registros a modificar. Ponles un nombre que lo relacione con la tabla, por ejemplo, en el cuadro de texto donde vas a mostrar NOMBRE, lo puedes llamar CuadroNombre ... 3º crea un cuadro de lista (sin el asistente), en el cual se van a mostrar todos los registros de tu tabla y desde este cuadro de lista podrás pinchar en uno y que te aparezca ese registro en los campos creados anteriormente en el formulario. 4º ahora viene lo difícil, crear código VBA para que todo esto funcione, es decir, tenemos hecha la carrocería del coche, falta crear el motor. Con el formulario en vista diseño, click derecho sobre el cuadro de lista>propiedades>eventos>"al hacer doble click" y tendrás que copiarle este código entre Private sub ... y end sub: Me.TXidRegistro = Me.ListaX.Column(0) Dim rs As Recordset Dim DB As Database Set DB = CurrentDb Set rs = DB.OpenRecordset("SELECT * FROM tuTabla Where IdTabla=" & Form!TXidRegistro.Value) TX1 = rs.Fields(1) TX2 = rs.Fields(2) TX3 = rs.Fields(3) Solo tendrás que sustituir tus nombres por: listaX=nombre de tu cuadro de lista tuTabla=nombre de tu tabla TXidRegistro=nombre del cuadro de texto donde aparece el id de tu tabla TX1...TX3= nombre de los cuadros de texto creados Si te sirvió la respuesta, cierra la pregunta.
Se me olvidaba: haz click derecho en el cuadro de lista>propiedades>Datos>origen de la fila> escribe esto: SELECT campoTabla1, campoTabla2, campoTabla3 FROM tuTabla ORDER BY [campoTabla1] Sustituye los nombres: campoTabla1.... = por los nombres de los campos de tu tabla tuTabla=por el nombre de tu tabla
Ha pasado mucho tiempo sin respuesta, cierra la pregunta