Créer une requête / un formulaire pouvant mettre à jour une table


1

Je souhaite savoir s'il est possible de créer un formulaire doté d'un accès en lecture / écriture à un jeu d'enregistrements très spécifique (filtré) d'une table.

Pour cela, je: 1. crée une requête qui filtre les enregistrements d'une table. 2. Créez un formulaire avec cette requête comme source d'enregistrement.

Cependant, les requêtes ne peuvent pas être mises à jour et je ne peux pas mettre à jour le contenu de la table d'origine à partir du formulaire. Quelqu'un sait comment se déplacer?

Voici un article connexe: http://www.fmsinc.com/Microsoftaccess/query/non-updateable/index.html

Merci.

Réponses:


1

Lorsque j'étais très impliqué dans le développement d'Access, j'ai rencontré ce problème plusieurs fois. La plupart des requêtes simples peuvent être mises à jour, mais pas les autres. Vous pouvez le savoir en essayant de modifier les valeurs dans le jeu de résultats. J'essaierais d'abord votre question avant de supposer que vous ne pouvez pas le faire.

Il existe une technique que j’ai utilisée et qui résout assez bien ce problème si tout le reste échoue, mais il est un peu difficile à configurer et à maintenir - vous devez transformer la requête select que vous avez en une requête append, puis enregistrer enregistrer les identifiants uniquement dans une table temporaire. Vous pouvez le faire dans le cadre d'un événement d'ouverture de formulaire (de la mémoire - vous devrez peut-être utiliser la requête me.requery) ou, mieux encore, dans le cadre du code du menu / bouton qui vous a conduit au formulaire. Vous utilisez ensuite une requête BEAUCOUP plus simple en tant que source d'enregistrements de formulaires, uniquement la table temporaire jointe à la table d'origine via l'ID.

Cela devrait fonctionner, mais vous devez également effectuer d'autres tâches, telles que vider la table temporaire avant / après son utilisation, et ce n'est pas vraiment convivial. Si vous souhaitez que plusieurs utilisateurs l'utilisent, vous devez également ajouter une sorte d'utilisateur USERID à la table. J'espère que cela a du sens!


Merci, cela a du sens. Je pense que votre suggestion est similaire à cette approche: fmsinc.com/Microsoftaccess/query/non-updateable/index.html
Andrés Segovia

Je trouve plus facile de créer simplement plus de tables (même si j'en ai déjà beaucoup).
Andrés Segovia

1

Une alternative serait d'utiliser la table comme source, puis de définir la valeur du filtre pour en faire le sous-ensemble que vous recherchez.

Comme @Saulysw l'a mentionné, la requête select devrait vous permettre de mettre à jour. Pouvez-vous publier le code SQL de la requête que vous utilisez en tant que source?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.