Elegir que tabla asignar al formulario

Pregunta de neófito en la materia.

Tengo una serie de tablas todas con la misma estructura pero con datos lógicamente diferentes.

Quiero crear un formulario para "alimentar" dichas tablas y me pregunto si existe la posibilidad de que en lugar de crear tantos formularios como tablas se pudiera crear un solo formulario y que el propio usuario decida la tabla a utilizar.

1 Respuesta

Respuesta
2

La posibilidad que comentas existe, sólo tienes que cambiar el origen del registro del formulario único a la tabla que quieras utilizar.

Ahora bien como no sé cómo está estructurada tu BD, te comento lo que yo haría:

Crear un formulario "Menu", a modo de Panel de control desde el que acceder a los formularios e informes que tengas.

En este formulario, puedes colocar un botón por cada tabla que tengas, con el texto "Añadir ...". Por ejemplo, si tienes una tabla Proveedores y otra Clientes, pondrías dos botones "Añadir Proveedores" y "Añadir Clientes". Ahora te colocas encima de uno de ellos, en vista diseño, le das a click derecho y generar evento. Ahí le pones este código (para el caso de Clientes, por ejemplo)

'Abrimos el Formulario en vista diseño y oculto
DoCmd. OpenForm "NombreFormulario", acDesign,,,, acHidden
'Cambiamos el recordsource
Forms!NombreFormulario.RecordSource = "Clientes"

'Cerramos el formulario y guardamos
DoCmd. Close acForm, "NombreFormulario", acSaveYes
'Abrimos el formulario para trabajar con él y cerramos el Menu
DoCmd. OpenForm "NombreFormulario"

DoCmd. Close acForm, Me. Name

En definitiva, en este código tienes que adaptar lo que está en negrita a los nombres que tu tengas: NombreFormulario por el nombre de tu formulario único, y donde pongo Clientes, tendrás que poner el nombre de cada tabla, en cada botón.

Otra opción es un cuadro combinado, en el que tengas los nombres de las tablas, y un único botón para abrir la tabla seleccionada en el cuadro combinado. Si optas por esta opción, el código del botón sería así:

'Comprobamos que haya un valor en el combo

If IsNull(Me.NombreCombo) Then

MsgBox "Tienes que seleccionar una tabla para continuar", vbInformation + vbOkOnly,"AVISO"

Exit Sub

End If

'Abrimos el Formulario en vista diseño y oculto
DoCmd.OpenForm "NombreFormulario", acDesign, , , , acHidden
'Cambiamos el recordsource
Forms!NombreFormulario.RecordSource = Me.NombreCombo.Value
'Cerramos el formulario y guardamos
DoCmd.Close acForm, "NombreFormulario", acSaveYes
'Abrimos el formulario para trabajar con él y cerramos el Menu
DoCmd. OpenForm "NombreFormulario"
DoCmd. Close acForm, Me. Name

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas