En Tablas vinculadas

Se puede vincular tablas de una access a otra y que no se puedan cambiar los datos de la 1ª desde la 2ª, ¿pero si poder cambiar datos de la 2ª desde la 1ª?

1 respuesta

Respuesta
1

Si operas directamente sobre las tablas no conozco ningún sistema para conseguir lo que quieres. Si operas sobre las tablas a través de formulario sí se puede conseguir, además de dos maneras distintas:

- A través de código, si tienes un formulario principal y, a través de botones, accedes a los formularios cuyo origen son esas tablas vinculadas.

- Operando directamente sobre las propiedades del formulario.

Bueno, pues con lo anterior quedo a la espera de tus noticias, para que me digas, si utilizas formularios, qué sistema prefieres.

Las tablas las opero desde formularios.

Dijéramos que lo que quiero conseguir es tener una base de datos sin que se pueda editar, ni cambiar nada para algunas personas y para mi que pueda editar y cambiar lo que quiera.

Gracias por tu interés y espero puedas ayudarme.

Vamos a ver...

Darte una solución para que puedas acceder como pides es un tema relativamente complejo y largo, y no te lo puedo explicar aquí.

1.- Una solución sencilla pasaría por crearte un formulario de inicio, llamémosle FInicio, que sería el que se cargaría al arrancar la BD.

2.- Tras eso dos formularios de menú, llamémosles FMenuAdm y FMenuUser.

3.- En el formulario FInicio añades dos botones de comando. En el primero, para acceder como usuario, le generas el siguiente código en el evento "Al hacer click"

...

Private Sub...

Docmd. Close acform, me. Name

Docmd. Openform "FMenuUser"

End Sub

...

El otro botón, para entrar como administrador, debería llevar el siguiente código:

...

Private Sub...

Const vPass as string = "AquiPonesTuPassword"

Dim uPass as variant

uPass = inputbox("Introduzca Password")

If strPtr(uPass) then exit sub

If uPass=vPass then

docmd.close acform, me.name

docmd.openform "FMenuAdm"

Else

msgbox "Password incorrecto"

End if

End Sub

...

Con esto ya discriminas quien puede utilizar un formulario u otro.

Ahora, en el menú FMenuAdm, creas los botones que necesites. Supongamos que necesitas abrir el formulario FDatos. El código para ese botón sería
...

Private Sub

Docmd.openform "FDatos"

End sub

...

Con esto abrirías el formulario y podrías hacer las modificaciones que quisieras.

En cambio, el mismo botón, pero para el formulario FMenuUser tendría el siguiente código:

...

Private Sub...

DoCmd.OpenForm "FDatos", , , , acFormReadOnly

End Sub

...

Con esto abrirías el formulario en sólo lectura, lo que implicaría que no se pueden modificar registros.

Doy por supuesto que has bloqueado la BD para que no se pueda ver el panel de exploración, e incluso has bloqueado los menús de la cinta de opciones.

Y más o menos eso sería la mecánica de la historia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas