IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Champ d'une requête sélection qui ne peut être mis à jour


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut Champ d'une requête sélection qui ne peut être mis à jour
    Bonjour,

    J'ai un problème de compréhension sur le résultat d'une requête sélection

    J'ai créé une jointure entre une table "T " et une requête "R" avec l'option "Inclure tous les enregistrements de la table T ... et seulement ceux de la requête R pour lesquels les champs joints sont égaux."

    Ce sont donc bien tous les enregistrements de la table T qui sont affichés. Je devrais donc pouvoir modifier un des champs de la table dans le résultat qui s'affiche mais tout est verrouillé.

    Je ne comprends pas. Pourquoi ne puis-je les modifier ?

    Merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bonjour.

    Oui c'est frustrant mais dés que tu as une jointure 1 à N (même si N=1) Access passe en mode lecture-seule car il ne sait pas mettre à jour la partie N.

    Je connais 2 méthodes de contournement :

    • Mettre "Enregistrement Unique" dans la requête de sélection (c'est une des propriétés de la requête).
      Ça marche parfois.
    • Remplacer la jointure par DFirst() et aller "pécher" les données jointes un champ à la fois.
      Ça marche mais c'est parfois excessivement lent car il y a un parcours de la table jointe pour chaque enregistrement et chaque champ
      et cela peut être pénible si tu as besoin de beaucoup de champs dans la table jointe.


    Dernière méthode non SQL :

    Utiliser un formulaire sur la table principale et un sous-formulaire sur la table jointe. Comme tu es sur 2 formulaires différents les données des 2 tables sont modifiables.

    Accessoirement cette particularité peut être exploiter, à notre avantage, pour protéger des données de la modification.

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    Ok merci

    je vais explorer ces pistes

    C'est un peu une sorte de bug de Access, non ?

    Ce que je ne comprends pas c'est que j'ai d'autres requêtes avec des jointures 1 à N sans ce problème

Discussions similaires

  1. "le champ ne peut être mis à jour"
    Par kfialko dans le forum Access
    Réponses: 18
    Dernier message: 04/08/2023, 17h40
  2. Réponses: 0
    Dernier message: 04/03/2015, 20h37
  3. Réponses: 1
    Dernier message: 16/11/2007, 11h28
  4. Réponses: 9
    Dernier message: 17/10/2005, 18h13
  5. [...] doit utiliser une requête qui peut être mise à jour
    Par requiemforadream dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo