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 éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 879
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 879
    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 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    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+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 879
    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, 16h40
  2. Réponses: 0
    Dernier message: 04/03/2015, 19h37
  3. Réponses: 1
    Dernier message: 16/11/2007, 10h28
  4. Réponses: 9
    Dernier message: 17/10/2005, 17h13
  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, 09h12

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