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 :

Exploiter un résultat de requête [AC-2010]


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Exploiter un résultat de requête
    Bonjour à tous !

    JE suis actuellement en train de développer une base access.
    Mon problème est simple , je veux pouvoir tester le résultat d'une requete.

    J'ai une table NON CONFORMITES et une table ACTIONS CURATIVES
    Les deux étant reliées par le N° de non conformité.
    à 1 enregistrement dans NON CONFORMITE peut correspondre plusieurs enregistrements dans ACTIONS CURATIVES.

    Chaque action curative possède une date de réalisation.
    Chaque non conformité possède un champs 'oui/non' = Actions curatives réalisées.

    J'ai réalisé une requête me retournant pour un meme numéro de non conformité, les actions curatives n'ayant pas de date de réalisation.
    Je voudrais que

    SI la requete me retourne AU MOINS un résultat dont la date de réalisation est nulle - ALORS je passe à NON le champs "actions curatives réalisées" de la table non conformité.
    SI la requete ne me retourne aucun résultat alors "actions curatives réalisées" = oui

    Voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [Actions curatives - NC].[N° de non conformité], [Actions curatives - NC].[réalisée le], [Actions curatives - NC].[description action]
    FROM [Actions curatives - NC]
    WHERE ((([Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]) AND (([Actions curatives - NC].[réalisée le]) Is Null));

    Merci beaucoup pour votre aide !

  2. #2
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Je pars du principe qu'il faudrait utiliser la fonction DCount.
    Selon l'exemple ci dessous : https://www.techonthenet.com/access/...ain/dcount.php

    Or je ne l'ai jamais utilisé et je ne sais pas du tout comment elle s'écrit, quels arguments...
    Merci beaucoup.

    Nom : Sans titre.png
Affichages : 269
Taille : 291,3 Ko

  3. #3
    Membre à l'essai
    Homme Profil pro
    Stagiaire Données
    Inscrit en
    Septembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Stagiaire Données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Salut


    Alors je suis pas expert, mais à chaud je dirais que tu pourrais passer par du VBA et tester ta requête avec un If, et ajouter la valeur avec Update :

    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
     Dim strSql as String
     
    strSql = "SELECT [Actions curatives - NC].[N° de non conformité], [Actions curatives - NC].[réalisée le], [Actions curatives - NC].[description action]"
    strSql = strSql & "FROM [Actions curatives - NC]"
    srtSql = strSql "WHERE ((([Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]) AND (([Actions curatives - NC].[réalisée le]) Is Null));"
     
    DoCmd.RunSQL strSql
     
    If strSq = null Then 'Je suis pas du tout sûr que ça fonctionne ici
     
    strUpdate = "UPDATE [Nom Table Action réalisée]"
    strUpdate = strUpdate & "SET [Nom du champ Actions curatives réalisée] = Oui',"
    strUpadte = strUpdate & "WHERE [Nom du champ numéro de l'action curative réalisée] = [Numéro de l'action curative réalisée]"
     
    Else
     
    strUpdate = "UPDATE [Nom Table Action réalisée]"
    strUpdate = strUpdate & "SET [Nom du champ Actions curatives réalisée] = Non',"
    strUpadte = strUpdate & "WHERE [Nom du champ numéro de l'action curative réalisée] = [Numéro de l'action curative réalisée]"
     
    End If
    Dis moi ce que ça donne !

  4. #4
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour ton aide.
    J'ai une erreur qui s'affiche :
    Nom : Sans titre.png
Affichages : 169
Taille : 110,7 Ko

  5. #5
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Nom : Sans titre.png
Affichages : 159
Taille : 18,1 Ko

  6. #6
    Membre à l'essai
    Homme Profil pro
    Stagiaire Données
    Inscrit en
    Septembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Stagiaire Données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Mmm oui, je vois !

    Peux-tu poster tes tables avec le nom de leurs champs ? (Le nom, pas les légendes), je voudrais vérifier quelque chose !

    D'ailleurs, peux-tu poster dans tes réponses le code quand ça pose problème ? Que je puisse le copier/collet et tester de mon côté

  7. #7
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Voici mes tables :

    Actions Curatives - NC

    N° (clé primaire)
    N° de non conformité
    description action
    échéance
    réalisée le

    Non conformités

    N° de non conformité
    Actions curatives réalisées (oui/non)




    voici mon code
    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
     
    Private Sub Commande95_Click()
     
    Dim strSql As String
     
    strSql = "SELECT [Actions curatives - NC].[N° de non conformité], [Actions curatives - NC].[réalisée le], [Actions curatives - NC].[description action]"
    strSql = strSql & "FROM [Actions curatives - NC]"
    srtSql = strSql & "WHERE ((([Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]) AND (([Actions curatives - NC].[réalisée le]) Is Null));"
     
    DoCmd.RunSQL strSql
     
    If strSql = Null Then 'Je suis pas du tout sûr que ça fonctionne ici
     
    strUpdate = "UPDATE [Non Conformités]"
    strUpdate = strUpdate & "SET [Actions curatives réalisées] = Oui',"
    strUpadte = strUpdate & "WHERE [Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]"
     
     
    Else
     
    strUpdate = "UPDATE [Non Conformités]"
    strUpdate = strUpdate & "SET [Actions curatives réalisée] = Non',"
    strUpadte = strUpdate & "WHERE [Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]"
     
    End If
    End Sub

  8. #8
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    JE viens de corriger un peu le code, je pense qu'il y avait erreur dans la partie update, mais j'ai toujours le meme message d'erreur.

    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
    Private Sub Commande95_Click()
     
    Dim strSql As String
     
    strSql = "SELECT [Actions curatives - NC].[N° de non conformité], [Actions curatives - NC].[réalisée le], [Actions curatives - NC].[description action]"
    strSql = strSql & "FROM [Actions curatives - NC]"
    srtSql = strSql & "WHERE ((([Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]) AND (([Actions curatives - NC].[réalisée le]) Is Null));"
     
    DoCmd.RunSQL strSql
     
    If strSql = Null Then 'Je suis pas du tout sûr que ça fonctionne ici
     
    strUpdate = "UPDATE [Non Conformités]"
    strUpdate = strUpdate & "SET [Actions curatives réalisées] = Oui',"
    strUpadte = strUpdate & "WHERE [Non Conformités].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]"
     
    Else
     
    strUpdate = "UPDATE [Non Conformités]"
    strUpdate = strUpdate & "SET [Actions curatives réalisée] = Non',"
    strUpadte = strUpdate & "WHERE [Non Conformités].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]"
     
    End If
    End Sub

  9. #9
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Rencontres tu le meme probleme ?

    Merci beaucoup pour ton aide !!!

  10. #10
    Membre à l'essai
    Homme Profil pro
    Stagiaire Données
    Inscrit en
    Septembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Stagiaire Données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Pour commencer, tu ne devais pas utiliser des espaces dans tes noms de table de champs !

    Renomme les comme ceci :

    Actions_Curatives_NC

    N_de_non_conformité
    réalisée_le
    description_action

    Non_Conformités

    N_de_non_conformité
    Actions_curatives_réalisées


    Mets donc ton code à jour !

    Autre chose : Tu n'as besoin des crochets (je les avais mis pour bien séparer tes noms de champs). Ça devrait résoudre ton erreur !

  11. #11
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Malheureusement je ne peux pas renommer, ma base est vraiment trés avancée.
    En fait elle est quasiment terminée , il ne reste que cet obstacle.

    Merci quand meme.

  12. #12
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Le code suivant fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande97_Click()
     
    Dim cpt As Integer
    DoCmd.OpenQuery "Requête9"
    cpt = DCount("*", "Requête9")
     
    If cpt = 0 Then DoCmd.OpenQuery "Requête10"
    If cpt <> 0 Then DoCmd.OpenQuery "Requête11"
     
    End Sub
    avec REQUETE9 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Actions curatives - NC].[N° de non conformité], [Actions curatives - NC].[réalisée le]
    FROM [Actions curatives - NC]
    WHERE ((([Actions curatives - NC].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]) AND (([Actions curatives - NC].[réalisée le]) Is Null));
    avec REQUETE10:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE [Non conformités] SET [Non conformités].[Actions curatives réalisées] = Yes
    WHERE ((([Non conformités].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]));
    avec REQUETE11:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE [Non conformités] SET [Non conformités].[Actions curatives réalisées] = No
    WHERE ((([Non conformités].[N° de non conformité])=[Formulaires]![Non conformités]![N° de non conformité]));

    J'ai juste un dernier soucis, lorsque j'execute il m'ouvre les résultats de la requête 9 , or je voudrais qu'il ne me les montre pas.
    Nom : Sans titre.png
Affichages : 167
Taille : 235,4 Ko

    Il y a surement quleque chose à mettre après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "Requête9"
    mais je connais vraiment pas bien.
    Merci beaucoup.

  13. #13
    Membre à l'essai
    Femme Profil pro
    developpeur base access
    Inscrit en
    Septembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : developpeur base access
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Solution trouvée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim cpt As Integer
    DoCmd.OpenQuery "Requête9", acReadOnly
     
    cpt = DCount("*", "Requête9")
     
    If cpt = 0 Then DoCmd.OpenQuery "Requête10"
    If cpt <> 0 Then DoCmd.OpenQuery "Requête11"
     
    DoCmd.Close

  14. #14
    Membre à l'essai
    Homme Profil pro
    Stagiaire Données
    Inscrit en
    Septembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Stagiaire Données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Super, content que tu aies trouvé une solution !


    Juste pour info, j'ai fait quelques recherche :

    Le problème concertant Docmd.RunSql ne venait pas des crochets !

    En fait la requête SELECT FROM WHERE est une requête de sélection, et VBA ne permet que les requêtes d'ACTION.
    Il aurait fallu utilisé INTO pour mettre le résultat dans une nouvelle table.

    SELECT INTO FROM WHERE AND ! Je saurais également pour la prochaine fois haha


    Bonne fin de journée !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/09/2007, 15h12
  2. [PDO] Exploiter le résultat d'une requête DESCRIBE
    Par Kioo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/07/2007, 00h28
  3. [MySQL] problème d'exploitation du résultat de ma requête
    Par helene38250 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/07/2007, 11h38
  4. [MySQL] comment exploiter le résultat d'une requête SELECT ?
    Par @min@ dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/04/2007, 20h52
  5. [SimpleXML] Comment exploiter le résultat d'une requête XML-RPC
    Par tiboel dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/02/2006, 19h57

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