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 :

Création requête avec mise à jour [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut Création requête avec mise à jour
    Bonjour à tous,

    J’ai une problématique que je n’arrive pas à résoudre de façon simple et efficace ☹

    J’ai une table qui contient des cartes et plusieurs champs mais dans le cas présent seuls deux me servent.

    J’ai un champs « statut » avec comme données : Active, Annulée ou En fabrication.
    J’ai un champs « département » avec des données sous forme de sigle DIRE/HHH/KKK, MARK/DIR/BIS etc.

    Je souhaiterai dans une seule requête si possible compter le nombre de cartes par statut pour un ou plusieurs département définis en critères (commence par) et ajouter le résultat dans une table (image ci-dessous).

    Nom : table_stock.JPG
Affichages : 125
Taille : 62,0 Ko

    Je souhaite aussi récupérer le mois/année saisi dans un champs indépendant sur le formulaire qui lancera mes requêtes en automatique et faire la sommes pour ma colonne « stock_total »

    Je ne suis pas fortiche avec le SQL et est en apprentissage avec le VBA mais je penses que la solution est dans le cumul des 2.
    J’ai fais une tentative de requête simple et avec le critère département j’ai des résultats incohérents ou pas de résultats ☹

    Nom : req-stock.JPG
Affichages : 126
Taille : 57,2 Ko

    Je vous remercie pour votre aide et vous souhaite une bonne journée

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bonjour.

    Ce serait pratique si tu méttais un exemple des données que tu utilises vraiment dans ta requête.
    Ensuite je te suggère de procéder par étapes :
    1. Définir une requête qui te donne les données que tu veux compter (juste les données pas regroupées ni filtrées).
    2. Faire une requête basée sur cette requête de sélection qui va faire le filtre de ce qui t'intéresse présentement.
    3. Faire une requête de regroupement basée sur la requête filtration.


    Une fois cela fait, voir comment tu peux combiner le tout en repartant du début et en appliquant les étapes dans une seule requête. Perso, je garderai les 2 (on peut combiner 1 et 2) ou 3 requêtes c'est généralement plus facile à vivre.

    A+

  3. #3
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut
    Bonjour à tous,

    Merci Marot_R.
    La table contient des données personnelles, c'est pour cela que je ne l'ai pas mise.
    Je vais suivre votre suggestion et laisser le post ouvert pour le cas ou et si besoin je ferai une table factice pour donner un exemple.

    Bonne journée.

  4. #4
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut
    Bonjour à tous,

    Je reviens sur ce post mais pour peut etre le fermer.

    J'ai construit mes requêtes mais maintenant je souhaite les lancer via VBA dans un formulaire et dont les résultats alimenteront des champs de sous-formulaires.
    Est il préférable que je reste sur ce post ou que j'en ouvre un autre dans IHM voir VBA?

    Je vous remercie et vous souhaite un bon après midi

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bonjour.

    On peut continuer là.

    Par contre si ce sont des requêtes de sélection il n'y a pas à les "lancer", juste à les utiliser.

    Peux-tu poster le SQL de tes requêtes, cela va aider pour la suite.

    A+

  6. #6
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    OK je vous remercie.
    Je vais dans un premier temps faire quelques essais et reviens dans le courant de la semaine prochaine et ajouterai mes requêtes en forme sql.
    Bonne journée et Excellent week-end

  7. #7
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut
    Bonjour à tous,

    Je commence à arriver au terme de mon développement et cette fin commence à être longue ☹
    Coté boulot la semaine trop chargée et je n’ai pas pu avancer sur ce travail que je fais en best effort.


    Pour parfaire votre compréhension, le formulaire « F_indicateurs_mensuels» va contenir 8 sous formulaires dont 4 seront alimentés manuellement et 4 en automatique.
    Après exécution des automatismes, le bouton de sortie lancera l'édition d'un état avec graphiques.

    Voici ma problématique.

    Dans le formulaire « F_indicateurs_mensuels» l’opérateur saisira le Mois/An ainsi que les dates de début et fin de mois.
    Le clic sur le bouton « lancer.. » Exécute la requête « R_T-rep-suivi-opérations-2 »


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [R_T-rep-suivi-opérations].type_operation, Sum([R_T-rep-suivi-opérations].CompteDenom_porteur_carte) AS SommeDeCompteDenom_porteur_carte
    FROM [R_T-rep-suivi-opérations]
    GROUP BY [R_T-rep-suivi-opérations].type_operation;

    qui est basée sur la requête primaire « R_T-rep-suivi-opérations »

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T_type_operation.type_operation, Count(T_operation_sur_carte.nom_porteur_carte) AS CompteDenom_porteur_carte
    FROM T_type_operation RIGHT JOIN T_operation_sur_carte ON T_type_operation.id_type_operation = T_operation_sur_carte.id_type_operation
    GROUP BY T_type_operation.type_operation, T_operation_sur_carte.date_opération
    HAVING (((T_operation_sur_carte.date_opération) Between ["date début de mois:"] And ["date fin de mois:"]));

    Les dates de la requête primaire doivent être récupérées dans le formulaire « F_indicateurs_mensuels» , « txt_debut_mois » et « txt_fin_mois »


    Et je souhaite que le résultat alimente les champs correspondants sur la ligne Moi/An (saisie dans « txt_mois_an ») dans le sous formulaire « F_T-rep-suivi-operations sous-formulaire »

    J’aurai des mois avec valeurs et d’autres sans valeurs, les champs sans valeurs devront recevoir un zéro.

    J’espère être assez claire et ne peut malheureusement pas vous mettre la base à dispo car à cette étape d’avancement j’ai des données confidentielles.

    Je vous remercie pour votre aide précieuse et vous souhaite une bonne journée.

    Le formulaire « F_indicateurs_mensuels»

    Nom : form indicat.jpg
Affichages : 82
Taille : 113,5 Ko

    Un exemple de résultats de la requête « R_T-rep-suivi-opérations-2 »

    Nom : exemple résultat.JPG
Affichages : 87
Taille : 33,3 Ko

    Structure du « F_T-rep-suivi-operations sous-formulaire »

    Nom : structure SF opération.JPG
Affichages : 86
Taille : 115,5 Ko

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bonjour.

    Pour récupérer l'info dans un formulaire ouvert il faut mettre quelque chose comme : [Forms]![NomForm]![NomChamp] dans les paramètres.
    Donc si j'ai bien suivi cela devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Between [forms]![F_indicateurs_mensuels]![txt_debut_mois] And [forms]![F_indicateurs_mensuels]![txt_fin_mois]
    Par contre je pense que tu a vas avoir besoin d'une requête d'ajout pour créer tes élements et qu'il va falloir l'appeler par VBA donc il y a une attrape.
    Volià une exemple de comment procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim db as dao.database: set db=currentdb
    dim q as dao.querydef: set q=db.querydefs("reqAjoutInfo")
    q.parameters("[forms]![F_indicateurs_mensuels]![txt_debut_mois]")=[forms]![F_indicateurs_mensuels]![txt_debut_mois]
    q.parameters("[forms]![F_indicateurs_mensuels]![txt_fin_mois]")=[forms]![F_indicateurs_mensuels]![txt_fin_mois]
    call q.execute(dbFailOnError)
    set q=nothing
    db.close: set db=nothing
    Pour les valeurs qui doivent être à 0 c'est à toi de les assigner dans la requête d'ajout.

    Pour faire afficher les valeurs dans ton formulaire il faudra sans doute mettre dans ton code VBA après l'exécution de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [forms]![F_indicateurs_mensuels]![F_T-rep-suivi-operations sous-formulaire].Form.Requery
    Si tu n'as pas besoin de créer les valeurs et que simplement l'utilisateur va faire la saisie, tu peux simplement utiliser la notion de champs père/champs fils et de mettre une valeur 0 dans la proriété "Valeur par défaut" des champs de saisie.
    Donc dans les propriétés "Champs Père" et "Champ Fils" du contrôle sous-formulaire tu mets [txt_debut_mois]; [txt_debut_moisinline].

    Attention la dernière fois que j'ai fait cela il a aussi fallu que je mette =[parent]![ChampParent] dans la prorpiété valeur par défaut du champ dans le sous-formulaire sinon Access ne copiait pas les valeurs.
    Dans ton cas ce serait probalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Parent]![txt_debut_mois]
    Même chose pour la fin.

    A+


    A+

  9. #9
    Membre habitué Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 490
    Points : 126
    Points
    126
    Par défaut
    Bonjour marot_r,

    merci pour votre aide, je regarde cela la semaine prochaine et vous souhaite un bon week-end

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2010, 20h59
  2. Problème avec requête de mise à jour
    Par david71 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/08/2008, 18h02
  3. [Requête/SQL]Mise à jour avec condition
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 23/04/2007, 00h14
  4. Problème avec une requête de mise à jour
    Par Le Pharaon dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/07/2006, 13h16
  5. Réponses: 2
    Dernier message: 10/03/2006, 14h55

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