Hoja de datos en access

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
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas