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 :

Requete Update basé sur une requete select


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut Requete Update basé sur une requete select
    Bonjour,

    Je souhaite mettre à jour un champ d'une table en fonction de critères particuliers. Pour cela je developpe en premier une requête Select.

    Mon idée est donc d'utiliser cette requête sélect qui contient les enregistrements à mettre à jour.

    je souhaite mettre à jour les enregistrements dont la date est antérieur ou égal à la date de la veille et dont le champ Second Controle = OUI.

    voici le code que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande94_Click()
    Dim SQ As String
     
    SQ = SELECT T_dossiers.IDdossier, T_controle.DateSélectionDossier, 
    T_dossiers.[Second Controle] FROM T_dossiers INNER JOIN T_controle ON 
    T_dossiers.IDdossier = T_controle.IDdossier GROUP BY T_dossiers.IDdossier, 
    T_controle.DateSélectionDossier, T_dossiers.[Second Controle] 
    HAVING (((First(T_controle.DateSélectionDossier)) <= Date - 1) 
    And ((T_dossiers.[Second Controle]) = 'OUI'))
     ORDER BY First(T_controle.DateSélectionDossier)
     
    DoCmd.RunSQL "UPDATE SQ SET T_dossier.[Second controle]= null
    End Sub
    Ma requête select est bonne. Là ou je bloque c'est comment appeler cette requete select (SQ) dans la requête Update afin de mettre à jour le champ Second Controle (remplacé OUI par rien)

    Si quelqu'un pouvait m'aider sur ce point, ca m'aiderait énormément dans l'avancement de mon appli !

    merci

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    salut chagui,

    on ne peut pas mettre à jour un champ d'une requête avec regroupement, il va falloir ruser...

    tu enregistres ta premières requête "R1",

    R1:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT T_dossiers.IDdossier, T_controle.DateSélectionDossier, 
    T_dossiers.[Second Controle] FROM T_dossiers INNER JOIN T_controle ON 
    T_dossiers.IDdossier = T_controle.IDdossier GROUP BY T_dossiers.IDdossier, 
    T_controle.DateSélectionDossier, T_dossiers.[Second Controle] 
    HAVING (((First(T_controle.DateSélectionDossier)) <= Date - 1) 
    And ((T_dossiers.[Second Controle]) = 'OUI'))
     ORDER BY First(T_controle.DateSélectionDossier)

    puis on met à jour avec la requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_Dossiers SET T_Dossiers.[Second controle]= null
    WHERE T_Dossiers.IDdossier IN (SELECT DISTINCT R1.IDdossier FROM R1)

    A tester, j'ai fait vite...

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bonjour, f-leb !!

    Merci d'avoir répondu ! Les requêtes et moi c'est pas trop ça même si j'avoue m'être bcp amélioré depuis mes premiers posts !

    Lorsque tu dis :
    tu enregistres ta premières requête "R1",
    Je l'enregistre dans un variable ? :

    dim R1 as String

    R1 = .....


    (edit)

    J'ai parlé trop vite...

    J'enregistre ma requete via access... lol On va dire que c'est la fin de journée !!

    Merci à toi !!

    ++

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

Discussions similaires

  1. Erreur de syntaxe sur une Requete Update
    Par samtheh dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 01/06/2007, 13h07
  2. Réponses: 7
    Dernier message: 09/05/2007, 21h42
  3. Etat basé sur une Requete Analyse Croisée
    Par Bercud dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/06/2006, 16h03
  4. INNER JOIN sur une requete UPDATE
    Par Immobilis dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/03/2006, 14h05
  5. SS Form basé sur une requete
    Par _developpeur_ dans le forum Access
    Réponses: 8
    Dernier message: 19/10/2005, 09h41

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