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

Access Discussion :

Impossible de mettre à jour Recordset


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur de maintenance industrielle automation
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur de maintenance industrielle automation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Impossible de mettre à jour Recordset
    Bonjour,

    Depuis l'ajout de la variable "R_Taches_Last_Activite.Dernière_exécution" dans le SELECT de la requête liée à mon sous-formulaire, je ne peux plus modifier les enregistrements affichés dans cette même requête. Access m'indique le message d'erreur "Impossible de mettre à jour Recordset".

    Ci-dessous le code SQL de la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    SELECT 
    
    R_Arret_Taches.ID_Arrets AS R_Arret_Taches_ID_Arrets, 
    R_Arret_Taches.T_Arrets_ID_Installations, 
    R_Arret_Taches.Type, R_Arret_Taches.[Date début], 
    R_Arret_Taches.[Heure début], R_Arret_Taches.[Date fin], 
    R_Arret_Taches.[Heure fin], R_Arret_Taches.Particularité, 
    R_Arret_Taches.[Date de modification], R_Arret_Taches.T_Arrets.Archivé, 
    R_Arret_Taches.ID_Taches AS R_Arret_Taches_ID_Taches, 
    R_Arret_Taches.T_Taches_ID_Installations, 
    R_Arret_Taches.Tâche, 
    R_Arret_Taches.[Ordre initial] AS OrdreInit, 
    R_Arret_Taches.[Avant arrêt] AS Avant, R_Arret_Taches.[Après arrêt] AS Apres, 
    R_Arret_Taches.Métier, R_Arret_Taches.Fournisseur, R_Arret_Taches.Procédure, 
    R_Arret_Taches.Protocole, 
    R_Arret_Taches.Périodique, R_Arret_Taches.Périodicité, 
    R_Arret_Taches.Durée, 
    R_Arret_Taches.T_Taches.Archivé, 
    T_Activites.ID_Activites, 
    T_Activites.ID_Installations, 
    T_Activites.ID_Arrets, T_Activites.ID_Taches, 
    T_Activites.[Ordre prévu], 
    T_Activites.Prévu, 
    T_Activites.Réalisé, 
    T_Activites.[Intervenant 1] AS Inter1, 
    T_Activites.[Intervenant 2] AS Inter2, 
    T_Activites.[Intervenant 3] AS Inter3, 
    T_Activites.Remarque, 
    R_Arret_Taches.Zone, 
    T_Activites.Débriefing, 
    R_Arret_Taches.[Date intermédiaire] AS DateInter, 
    R_Arret_Taches.[Activités intermédiaire] AS ActInter, 
    R_Arret_Taches.[Zone installation] AS ZoneInst, 
    R_Taches_Last_Activite.Dernière_exécution
    
    FROM (R_Arret_Taches 
    LEFT JOIN T_Activites ON (R_Arret_Taches.ID_Taches = T_Activites.ID_Taches) 
    AND (R_Arret_Taches.ID_Arrets = T_Activites.ID_Arrets)) 
    INNER JOIN R_Taches_Last_Activite ON R_Arret_Taches.ID_Taches = R_Taches_Last_Activite.T_Taches.ID_Taches
    
    WHERE (((R_Arret_Taches.T_Taches.Archivé)=False));
    Merci d'avance pour votre aide!

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 048
    Points : 24 636
    Points
    24 636
    Par défaut
    Bonjour,
    En incluant ce nouveau champ et cette nouvelle table tu te retrouves avec une requête qui retourne des tuples dont le lien vers une table est impossible. Le moteur Jet (ou le SGBD en général) ne pouvant identifier la table place ce recordset en lecture seule.

    On peut tenter de la rendre modifiable mais sans garantie.
    La première est de passer ce recordset en mode : Feuille rép.dyn.(MAJ globale)
    Cela ne peut être fait que si c'est un objet requête ou encore si la source est utilisé dans un formulaire. Dans les 2 cas régler la propriété Type de recordset.

    La deuxième est d'enlever la table et donc le champ qui à provoqué cet état.

    La troisième est de modifier le type de relation vers cette nouvelle table mais ainsi d'avoir le risque de doublons dans la résultat.

    La quatrième, que je déconseille fortement, EST de récupérer la valeur grâce à une fonction de domaine et du coup d'en supporter la lenteur.

    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur de maintenance industrielle automation
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur de maintenance industrielle automation
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci pour Loufab pour tes explications!
    La première et la troisième solution ne fonctionne pas dans mon cas... Je vais devoir trouver un moyen de satisfaire mon besoin autrement faire autrement...

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 048
    Points : 24 636
    Points
    24 636
    Par défaut
    La 4 alors.

    Dans la source de la requête ou dans le formulaire utilise un contrôle indépendant et une formule à base de Dlookup() pour retrouver la valeur.

    Tu ne pourras cependant que la consulter. Pour la modifier il faudra imaginer un moyen autre.

    Cordialement,

Discussions similaires

  1. impossible de mettre à jour recordset
    Par zephyr59 dans le forum Access
    Réponses: 4
    Dernier message: 25/11/2016, 10h02
  2. [AC-2013] Impossible de mettre à jour Recordset
    Par Palestinian dans le forum Access
    Réponses: 6
    Dernier message: 24/11/2014, 18h12
  3. [AC-2000] Impossible de mettre à jour RecordSet
    Par gwems dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/07/2009, 16h09
  4. Impossible de mettre à jour Recordset
    Par genoue dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 30/12/2008, 17h41
  5. Réponses: 4
    Dernier message: 29/05/2006, 17h15

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