table liée lecture seule
J'ai un access 2003 (mdb) base de données sur les projets de logement-je mettre à jour pour notre bureau de la planification sur une base trimestrielle. D'autres personnes dans notre bureau pourrait profiter de voir les mêmes données. J'ai pensé que le moyen le plus facile a été de leur donner un accès séparé de la base de données (version 2003 ou 2007), en les reliant à la source de la table-je mettre à jour. Toutefois, pour les empêcher de modifier par inadvertance la source de données lors de l'affichage, je voudrais faire la table liée en lecture seule.
Quelques indices sur la façon de restreindre les autorisations d'accès pour les tables liées pour Access 2007?
OriginalL'auteur ako | 2013-10-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez stocker le fichier de base de données dans un dossier partagé où les autres utilisateurs ont l'autorisation en lecture seule. Ensuite, ils doivent toujours être en mesure d'afficher, mais pas les modifier, les données de la table liée.
Si cette proposition n'est pas satisfaisante, vous pouvez utiliser une requête pour limiter leur accès en lecture seule. Dans la base de données vous donne les utilisateurs, de ne pas inclure un lien vers la source de la table dans votre base de données. Au lieu de leur donner une requête qui trouve la source de la table sans un lien ... sous la forme de
FROM TableName IN '[path to db file]'
Ici est testé exemple:
Cependant, que le résultat de la requête pourrait encore être modifiable. Vous pouvez faire la colonne des valeurs en lecture seule avec les expressions de champ à la place de la réelle sur le terrain des valeurs.
Ceux qui ont été les transformations simples pour rendre les valeurs en lecture seule. Mais vous pouvez utiliser d'autres techniques appropriées. Par exemple, si le tableau contient un champ Date/Heure, vous pouvez utiliser
CStr()
ouFormat()
.Note j'ai utilisé un alias qui était distinct du nom de champ avec ces fonctions. Dans certains cas, l'Accès pourra se plaindre d'un "récursive alias" lorsque vous essayez de ré-utilisez le champ nom de l'alias. Mais il suffit de tester votre alias de choix dans le concepteur de requêtes pour savoir rapidement qui sont acceptables.
OriginalL'auteur HansUp
Tard pour le jeu avec cette réponse, mais c'est quelque chose que MS-Access, les développeurs doivent parfois faire...
...Et c'est des arcanes, car nous allons utiliser une requête en lecture seule avec un interne défini par la chaîne de connexion, et la "Requête" Propriétés de la fenêtre n'est pas tout à fait faire ce que vous attendez qu'il fasse.
En fait, je ne pense pas que cette fenêtre n'quel que soit le développeur de Microsoft qui a mis en place la "Source" de la Chaîne de Connexion de propriété n'attend que ça à faire, non plus.
Mais, arcane ou pas, voici comment faire quelque chose qui fonctionne comme un lecture seule table liée à partir d'un autre MS Accès base de données:
de table ou de ce champs, vous êtes à rejeter le SQL de toute façon.
Vue'
De toute évidence, vous êtes à l'aide de votre propre base de données, l'adresse et le nom de la table; et vous ne pourriez pas besoin du mot de passe de la clause.
Ne manquez pas ces guillemets en face de la chaîne de connexion: ils ne sont pas là pour vous par les propriétés intégrées de dialogue lorsque vous collez dans une chaîne de connexion, et vous avez vraiment besoin d'eux.
Vous n'êtes pas encore fait: c'est toujours en lecture-écriture:
Vue'
de la fenêtre où les tables apparaissent et sélectionnez " Propriétés..."
et la Source " - c'est le tableau de la feuille de propriétés, et que vous voulez le
requête de la feuille de propriétés...
obtenir la pleine propriété de feuille de la requête.
.
Vous pouvez renommer la requête pour le nom de la table, ou pas: ça va encore travailler dans une requête, comme si c'était un tableau, et vous pourriez économiser de confusion si vous lui donner un nom qui indique clairement que ce n'est pas vraiment une table. Cette matière dans le code qui s'attend à un DAO objet TableDef, et qui comprend un code re-liens externes tables pour vous.
Vous remarquerez que votre chaîne de connexion (texte en clair le mot de passe et tout et tout) dans la fenêtre de propriétés de la requête en vertu de la Source de la Chaîne de Connexion'. Sérieusement, ne pas le modifier: si vous avez de la chance, il va tout simplement remplacer votre deux guillemets dans le SQL avec une paire de guillemets simples, et que la requête fonctionne toujours. Mais vous aurez probablement perdre les devis si vous le coller dans une nouvelle chaîne de connexion, et qui va casser la requête; et aucun des messages d'erreur et les pages d'aide vous dira que vous avez besoin de ces magie guillemets dans le SQL brut.
Je soupçonne qu'il y a d'autres sans-papiers "chasse aux sorcières" pièges dans les requêtes aux objets externes: si vous passez ce hack sur de vos collègues, je vous conseille fortement de passer sur l'avertissement " Vous en avez terminé avec la fenêtre de requête. Ne rien faire d'autre ici " parce que ce type de piège peut perdre des heures de votre temps et le leur.
Aussi: assurez-vous de documenter ce que vous avez fait: la plupart des outils pour la reconnexion des tables liées de ne pas ramasser une requête avec une source externe, et que c'est un bug d'attente à mordre celui qui essaie de sauter entre les "DEV", Testing " et "Production" des bases de données.
OriginalL'auteur Nigel Heffernan