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 :

Requête de mise à jour [AC-2013]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2019
    Messages : 32
    Points : 10
    Points
    10
    Par défaut Requête de mise à jour
    Bonjour,

    Je me permets d'écrire sur ce forum car j'ai un petit blocage sur l'exécution d'une requête.

    Pour le contexte, j'ai un formulaire de recherche multicritères basé sur une requête qui ressemble au tutoriel de ClaudeLeloup sur ce sujet.
    Mon souhait aujourd'hui est de pouvoir éditer les enregistrements (Filtrés) cochés à l'aide d'un champ "OUI/NON" rajouté. Après des recherches sur internet, j'ai construis une requête de MAJ cependant lors de l'exécution sur un bouton un message d'erreur apparait : "Erreur d’exécution 3061,trop peu de paramètres. 7. Attendu"

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Toutcocher_Click()
    CurrentDb.Execute "UPDATE rRecherche SET rRecherche.Edition = Yes;"
    Me.Requery
    End Sub
    La requête de MAJ est basée sur la requête d'enregistrements (rRecherche qui est liée et filtrée avec le formulaire) pour que la coche se fasse uniquement sur les enregistrements choisis. Mais le message d'erreur apparait..

    Ce qui m'interpelle, c'est que si j'essaie la même chose en remplaçant la "rRecherche" par la Table d'origine la coche des données se fait mais sur tous les enregistrements.. Or je ne veux que les enregistrements filtrés dans le formulaire multicritères.

    Peux être qu'il est impossible de réaliser une requête de MAJ sur une requête et il faut absolument le faire sur une table ?

    Merci pour votre aide

    Bien cordialement

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 865
    Points : 14 989
    Points
    14 989
    Par défaut
    bonjour,
    Peux être qu'il est impossible de réaliser une requête de MAJ sur une requête et il faut absolument le faire sur une table ?
    non, c'est possible si cette requête peut être mise à jour (pas de regroupement ou de jointure empêchant la mise à jour ...) et si cette requête ne contient pas de critères faisant référence à un ou des contrôles du formulaire (le message 3061 indique que c'est vraisemblablement le cas).

    Par contre, si cette requête est utilisée dans le formulaire, il est possible de mettre à jour le jeu d'enregistrements du formulaire (RecordSet):
    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
    Private Sub Toutcocher_Click()
    Dim oRS As Recordset
    Set oRS = Me.RecordsetClone   ' on utilise le clone du jeu d'enregistrements
    If oRS.RecordCount > 0 Then
         oRS.MoveFirst
         Do Until oRS.EOF
            oRS.Edit
            oRS.Fields("Edition") = True 
            oRS.Update
            oRS.MoveNext
         Loop
    End If
    Set oRS = Nothing
    Me.refresh   ' on actualise l'écran
    End Sub

  3. #3
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,

    tu peux essayer :
    - de créer ta requête mise à jour et de l'enregistrer
    - de l'appeler dans ton code avec A+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2019
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Bonjour à vous,

    Merci pour vos réponses.

    Les 2 méthodes fonctionnent parfaitement je vous remercie !! Peux être un peu plus de temps de chargement sur la méthode de @tee_grandbois mais sinon parfait. Je garde les 2 méthodes pour plus tard si besoin.

    Je clôture la discussion !

    Bien à vous

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 865
    Points : 14 989
    Points
    14 989
    Par défaut
    bonsoir,
    Peux être un peu plus de temps de chargement sur la méthode de @tee_grandbois mais sinon parfait.
    dans ce cas en ajoutant cette instruction au début du code: Docmd.Echo False et à la fin Docmd.Echo True cela évite le Refresh de l'écran pendant la mise à jour et l'exécution est instantanée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete de mise a jour
    Par el_quincho dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/06/2006, 15h15
  2. Requete De Mise A Jour Inseree Dans Une Macro
    Par tereda dans le forum Access
    Réponses: 1
    Dernier message: 10/05/2006, 13h34
  3. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 11h06
  4. Réponses: 5
    Dernier message: 25/11/2005, 13h42
  5. Plantage SQL Server sur requete de mise a jour
    Par Laurent_75000 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2005, 11h00

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