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

IHM Discussion :

Sous-formulaires identiques


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut Sous-formulaires identiques
    Bonjour,

    Actuellement en stage je dois réaliser une base de données ACCESS.

    Le soucis que je rencontre depuis plusieurs jours est le suivant: j'ai dans un formulaire principal deux sous-formulaires construit sur le même principe. Cependant l'un fonctionne correctement alors que le deuxième ne fonctionne pas comme je veux et je ne sais pas du tout d'où cette erreur peut venir.
    J'ai déjà refait plusieurs fois le deuxième sous-formulaire(celui qui me pose problème) mais même en faisant cela, rien ne fonctionne.


    Ces sous-formulaires sont basés sur une requête analyse croisée elle même basées sur d'autres requêtes. Si besoin je vous laisserai ma base vide de données.
    J'ai absolument besoin de votre aide je ne m'en sort pas du tout

    Merci à tous de votre aide

  2. #2
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    Les deux sous-forumlaires sont alimentés par la même requête? Peut-être devrais-tu faire deux requêtes indépendants, bien qu'identiques!
    As-tu essayé de copier/coller ton sous formulaire qui fonctionne pour créer celui qui ne fonctionne pas?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Salut,

    Non c'est bien deux requêtes analyse croisée différentes mais construitent sur le même principe.

  4. #4
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    Peux-tu détailler un peu plus le contenu et le fonctionnement de tes sous-formulaires?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Je vais vider ma base de toutes données je la posterai sur l'heure du midi

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Voici le code à partir du quel je créée le sous-formulaire imputable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(R_Récup_Pointage_par_Affaires.NbHeuresPointées) AS PremierDeNbHeuresPointées
    SELECT R_Récup_Pointage_par_Affaires.Ref, R_Récup_Pointage_par_Affaires.Projet, R_Récup_Pointage_par_Affaires.Client, R_Récup_Pointage_par_Affaires.[Référence Commande], R_Récup_Pointage_par_Affaires.Commentaire, Sum(R_Récup_Pointage_par_Affaires.NbHeuresPointées) AS Total
    FROM R_Récup_Pointage_par_Affaires
    GROUP BY R_Récup_Pointage_par_Affaires.Ref, R_Récup_Pointage_par_Affaires.Projet, R_Récup_Pointage_par_Affaires.Client, R_Récup_Pointage_par_Affaires.[Référence Commande], R_Récup_Pointage_par_Affaires.Commentaire
    PIVOT R_Récup_Pointage_par_Affaires.Jour In (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);
    Et là le code de la requête analyse croisée à partir de laquelle je créée le sous-formulaire non-imputable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(R_Récup_Pointage_par_Affaires_Non_Imputable.NbHeuresPointées) AS PremierDeNbHeuresPointées
    SELECT R_Récup_Pointage_par_Affaires_Non_Imputable.RefSAP, R_Récup_Pointage_par_Affaires_Non_Imputable.N°SAP, R_Récup_Pointage_par_Affaires_Non_Imputable.Type, R_Récup_Pointage_par_Affaires_Non_Imputable.Commentaire, Sum(R_Récup_Pointage_par_Affaires_Non_Imputable.NbHeuresPointées) AS Total
    FROM R_Récup_Pointage_par_Affaires_Non_Imputable
    GROUP BY R_Récup_Pointage_par_Affaires_Non_Imputable.RefSAP, R_Récup_Pointage_par_Affaires_Non_Imputable.N°SAP, R_Récup_Pointage_par_Affaires_Non_Imputable.Type, R_Récup_Pointage_par_Affaires_Non_Imputable.Commentaire
    PIVOT R_Récup_Pointage_par_Affaires_Non_Imputable.Jour In (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);
    Dans le premier formulaire je peux bien insérer différentes lignes et faire plusieurs pointages le même jour, sur des affires différentes avec des heures différentes. Et pour le deuxième, je peux bien insérer plusieur lignes, cependant quand je veux ajouter un pointage le même jour sur une autre affaire c'est impossible. (soit le pointage se fait sur la première ligne soit sur la deuxième impossible de mettre les deux sauf en choissisant des jours différents)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Je me permets de remlncer cette discussion car je suis toujours bloquée avec le même problème.

    Les deux sous-formulaires sont créés à partir de requetes analyse croisée différentes mais construitent sur le même principe toutes les deux.

    Or un formulaire fonctionne comme je le souhaiterai et pas l'autre.

    Merci a tous pour votre aide.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Et pour le deuxième, je peux bien insérer plusieur lignes, cependant quand je veux ajouter un pointage le même jour sur une autre affaire c'est impossible. (soit le pointage se fait sur la première ligne soit sur la deuxième impossible de mettre les deux sauf en choissisant des jours différents)
    Regardes si dans ta table tu admets bien les doublons sur le champ de la date.
    Et regarde l'indéxation des champs de ta table.

    Philippe

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Oui dans la table T_Pointage_Non_Imputable le champs date est bien indéxé avec doublons. Tous les autres champs possède aussi la propriété indéxe à oui avec doublons

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ok

    Dernière chose, est-ce que tu peux faire des modifications directement dans la requête sans passer par le formulaire, si c'est non, c'est le group by qui ne veut pas d'ajout.

    Et c'est malheureusement souvent le cas, il faudra revoir ta manière de procéder.

    Philippe

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    C'est-à-dire?

    Je laisse le code la requete analyse croisée pour la partie qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(R_Récup_Pointage_par_Affaires_Non_Imputable.NbHeuresPointées) AS PremierDeNbHeuresPointées
    SELECT R_Récup_Pointage_par_Affaires_Non_Imputable.CodePointage, R_Récup_Pointage_par_Affaires_Non_Imputable.N°SAP, R_Récup_Pointage_par_Affaires_Non_Imputable.Type, R_Récup_Pointage_par_Affaires_Non_Imputable.Valider, R_Récup_Pointage_par_Affaires_Non_Imputable.Commentaire, Sum(R_Récup_Pointage_par_Affaires_Non_Imputable.NbHeuresPointées) AS Total
    FROM R_Récup_Pointage_par_Affaires_Non_Imputable
    GROUP BY R_Récup_Pointage_par_Affaires_Non_Imputable.CodePointage, R_Récup_Pointage_par_Affaires_Non_Imputable.N°SAP, R_Récup_Pointage_par_Affaires_Non_Imputable.Type, R_Récup_Pointage_par_Affaires_Non_Imputable.Valider, R_Récup_Pointage_par_Affaires_Non_Imputable.Commentaire
    PIVOT R_Récup_Pointage_par_Affaires_Non_Imputable.Jour In (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);
    et le code pour la requete qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM First(R_Récup_Pointage_par_Affaires.NbHeuresPointées) AS PremierDeNbHeuresPointées
    SELECT R_Récup_Pointage_par_Affaires.Ref, R_Récup_Pointage_par_Affaires.Projet, R_Récup_Pointage_par_Affaires.Client, R_Récup_Pointage_par_Affaires.[Référence Commande], R_Récup_Pointage_par_Affaires.RefSAP, R_Récup_Pointage_par_Affaires.Commentaire, R_Récup_Pointage_par_Affaires.Valider, Sum(R_Récup_Pointage_par_Affaires.NbHeuresPointées) AS Total
    FROM R_Récup_Pointage_par_Affaires
    GROUP BY R_Récup_Pointage_par_Affaires.Ref, R_Récup_Pointage_par_Affaires.Projet, R_Récup_Pointage_par_Affaires.Client, R_Récup_Pointage_par_Affaires.[Référence Commande], R_Récup_Pointage_par_Affaires.RefSAP, R_Récup_Pointage_par_Affaires.Commentaire, R_Récup_Pointage_par_Affaires.Valider
    PIVOT R_Récup_Pointage_par_Affaires.Jour In (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);

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 282
    Points : 19 479
    Points
    19 479
    Billets dans le blog
    64
    Par défaut
    Salut,

    Peux-tu poster ta base ?

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 282
    Points : 19 479
    Points
    19 479
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    A priori cela ne vient pas de la requête mais du code qui ouvre le formulaire de saisie dans contenu dans le module M_Planning :

    Si dans le second sous-formulaire une ligne est identifiée par le champ "CodePointage" ou "RefSAP" il te faut l'ajouter au critère d'ouverture :

    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
    Public Function OuvrirFormSaisieNonImputable(j As Integer) 'Ajouter un pointage non-imputable
    Dim DateJ As Date
    
    DateJ = DateSerial(Forms!Frm_Pointage!An, Forms!Frm_Pointage!Mois, j) ' CodePointage
    
    DoCmd.OpenForm "F_Saisie_Non_Imputable", , , "[LoginSalarié]='" & Nz(Forms!Frm_Pointage!LoginSalarie, "") & "' and [CodePointage]=" & Nz(Forms!Frm_Pointage!SF_Pointage_Non_Imputable!RefSAP, 0) & " and ([DatePointage]=" & FDateUs(DateJ) & ")"
    
    'Récupère les valeurs des champs de Frm_Pointage, et SF_Pointage_Non_Imputable pour les afficher dans F_Saisie_Non_Imputable
    Forms!F_Saisie_Non_Imputable!LoginSalarié.Value = Forms!Frm_Pointage!LoginSalarie
    Forms!F_Saisie_Non_Imputable!Jour.Value = DateJ
    Forms!F_Saisie_Non_Imputable!RefSAP.Value = Forms!Frm_Pointage!SF_Pointage_Non_Imputable!RefSAP
    Forms!F_Saisie_Non_Imputable!N°SAP.Value = Forms!Frm_Pointage!SF_Pointage_Non_Imputable!N°SAP
    Forms!F_Saisie_Non_Imputable!Type.Value = Forms!Frm_Pointage!SF_Pointage_Non_Imputable!Type
    Forms!F_Saisie_Non_Imputable!Commentaire.Value = Forms!Frm_Pointage!SF_Pointage_Non_Imputable!Commentaire
    
    End Function
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    User,

    La solution du problème est presque là. Ok sa marche bien, seul problème c'est quand on clique sur le bouton "Ajouter un Pointage" on ajoute des heures pour le jour(aujourd'hui) sa fonctionne, par contre quand on veut ajouter des heures à un autre jour, il y a création d'une nouvelle ligne alors qu'il faudrait que se soit dans la même ligne.

    Désolé de cette explication pas claire du tout mais je ne sais pas comment expliquer mieux c'est dur de l'expliquer sans avoir le formulaire sous les yeux.

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 282
    Points : 19 479
    Points
    19 479
    Billets dans le blog
    64
    Par défaut
    Si dans la requête le regroupement se fait sur :

    CodePointage, N°SAP, Type et commentaire, alors dans ton formulaire d'ajout, tu dois indiquer le commentaire aussi dans ton code de mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub RefSAP_AfterUpdate()
    Me.N°SAP = RefSAP.Column(1)
    Me.Type = RefSAP.Column(2)
    Me.Commentaire = RefSAP.Column(3)
    End Sub
    Quand penses-tu ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. [AC-2003] Valeur identique dans 2 sous-formulaires
    Par lucas-18 dans le forum IHM
    Réponses: 7
    Dernier message: 30/09/2009, 18h30
  2. Réponses: 9
    Dernier message: 22/11/2006, 19h01
  3. Verouillage de formulaire et sous formulaire
    Par Mattdesoibs dans le forum IHM
    Réponses: 3
    Dernier message: 15/10/2004, 10h22
  4. Réponses: 2
    Dernier message: 10/10/2004, 23h12
  5. où est mon sous-formulaire ?
    Par yves_fuji dans le forum IHM
    Réponses: 2
    Dernier message: 08/09/2004, 08h34

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