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 :

Utilisation de Forms dans une requête


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Utilisation de Forms dans une requête
    J’ai 3 tables : Table élève, Table cours reliée à Table élève, Table vacances indépendante contenant chaque jour non travaillé (vacances ou jours fériés)
    J’ai un formulaire élève avec un sous formulaire cours.
    Je saisis une date de début de cours qui me sert à définir une date théorique de fin de cours en fonction des formules que l’élève a choisies. (cours 1 par semaine et toujours le même jour)
    Mon problème est le suivant :
    J’ai besoin de compter combien de jours non travaillés sont contenus entre le premier cours et le dernier cours théorique afin de décaler la date dernier cours théorique en rajoutant le nombre de semaines non travaillées.
    Pour cela j’utilise 2 requêtes la première identifie les jours non travaillés
    La seconde compte le nombre d’occurrences de la première requête ce qui représente le nombre de semaines à rajouter.
    Mes requêtes fonctionnent en passant les 2 dates manuellement. Pour l’automatiser dans mon sous formulaire, je remplace la saisie manuelle par une définition Forms de mes champs Date_PremierCours et Date_DernierCours. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].Form![Cours_DatePremierCours]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].Form![Cours_DateDernierCours]
    Résultat à l’exécution, il affiche le Forms et me demande de rentrer la date manuellement.
    Je tourne en rond

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    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 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonjour,
    une explication, même claire, ne suffit pas, peux-tu poster le code et préciser dans quel contexte est lancée cette requête ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Je prépare ça

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour Tee_Grandbois
    J'ai copié l'impression écran dans un document word ci-joint

    La requête est appelée depuis le sous formulaire SF_CreerEleveCours
    merci
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    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 769
    Points : 14 810
    Points
    14 810
    Par défaut
    ce critère n'est pas logique:
    >=[forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].Form![Cours_DatePremierCours] et [forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].Form![Cours_DateDernierCours]je ne vois pas ce que cela peut renvoyer à part les valeurs égales

    est-ce possible d'avoir une copie de la base (format .zip ou .rar) avec des données anonymisées ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Désolé mais je n’ai pas ici les outils pour envoyer la base de données.
    Je pense que j’ai mal exprimé le problème.
    La requête fonctionne comme je le veux mais en passant manuellement les paramètres
    C’est un formulaire de saisie des enregistrement qui appelle la requête après la saisie de la date premier cours.
    Tout fonctionne hors mis qu’il me fait saisir les 2 dates alors que je veux qu’l prenne les 2 dates que je viens de saisir et les passe à la requete
    Le critère dans la requête pour
    Table_VacancesDate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >=[forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].[Form]![Cours_DatePremierCours] Et <=[forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].[Form]![Cours_DateDernierCours]
    Sélectionne bien les jours de vacances compris entre ces 2 dates
    Le critère dans la requête pour
    Table_VacancesJours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JourSem([forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].[Form]![Cours_DatePremierCours])-1
    Sélectionne bien les vacances correspondant au jour de la semaine de la date Premier Cours
    Le souci c’est que le Forms ne prend pas la valeur du champ de mon formulaire de saisie mais il me demande de rentrer manuellement les dates
    Exemple : date 1er cours 23/04/2020 date dernier cours 28/05/2020
    J’ai pour résultat jeudi 30/04/2020 qui est bien le seul jeudi non travaillé entre ces 2 dates.
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    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 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Désolé mais je n’ai pas ici les outils pour envoyer la base de données.
    faire un Zip est natif dans Windows depuis quelques années
    Le souci c’est que le Forms ne prend pas la valeur du champ de mon formulaire de saisie mais il me demande de rentrer manuellement les dates
    Exemple : date 1er cours 23/04/2020 date dernier cours 28/05/2020
    j'avais bien compris ton problème sauf que pour trouver la où ça coince, il me faut la base sous la main pour faire des recherches, je n'ai pas la science infuse pour ce genre de dysfonctionnement et cela irait beaucoup plus vite que des questions/réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >=[forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].[Form]![Cours_DatePremierCours] Et <=[forms]![F_Creer_EleveCours]![SF_Creer_EleveCours].[Form]![Cours_DateDernierCours]
    oui, c'est plus logique

  8. #8
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Je comprends je vais voir avec mon fils pour voir comment faire.
    Merci pour ton aide

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Re, j'espère avoir fait les choses correctement.
    Il faut aller dans créer un élève, formulaire f_Creer_EleveCours, sous formulaire SF_Creer_EleveCours.
    La requete appelée R_ListeJour
    J'ai oublié de remettre

    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
    DoCmd.OpenQuery "R_ListeJour"
     
    Private Sub Cours_FormuleN°_AfterUpdate()
     
    If Cours_FormuleN°.Column(3) = 44 Then
        Me.Cours_NBSemCours = Fix(((FinSaison - Cours_DatePremierCours) / 7) + 1)
        Me.Cours_DateDernierCours = (Cours_DatePremierCours + ((Cours_NBSemCours - 1) * 7))
    ElseIf Cours_FormuleN°.Column(3) = 22 Then
              Me.Cours_NBSemCours = Fix(((FinSaison - Cours_DatePremierCours) / 14) + 1)
              Me.Cours_DateDernierCours = (Cours_DatePremierCours + ((Cours_NBSemCours - 1) * 14))
    ElseIf Cours_FormuleN°.Column(3) = 5 Then
                Me.Cours_NBSemCours = 5
                Me.Cours_DateDernierCours = (Cours_DatePremierCours + ((Cours_NBSemCours - 1) * 7))
    ElseIf Cours_FormuleN°.Column(3) = 15 Then
                Me.Cours_NBSemCours = 15
                Me.Cours_DateDernierCours = (Cours_DatePremierCours + ((Cours_NBSemCours - 1) * 7))
        End If
    Me.Cours_PrixEleve = Cours_FormuleN°.Column(2) / Cours_FormuleN°.Column(3) * Cours_NBSemCours
    ' remettre DoCmd.OpenQuery "R_ListeJour"  Ici
    End Sub
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    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 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonjour,
    il faut utiliser la propriété Nom du sous-formulaire, pas la propriété Objet source pour désigner l'objet:

    Nom : _0.JPG
Affichages : 83
Taille : 28,9 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >=[formulaires]![F_Creer_EleveCours]![SF_Cours].[Form]![Cours_DatePremierCours] Et <=[forms]![F_Creer_EleveCours]![SF_Cours].[Form]![Cours_DateDernierCours]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JourSem([forms]![F_Creer_EleveCours]![SF_Cours].[Form]![Cours_DatePremierCours])-1

  11. #11
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2020
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Mille mercis tee_grandbois je me suis entêté depuis 5 jours

    "Quand le sage désigne la lune, l'idiot regarde le doigt" c'est ce que j'ai fait

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    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 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Citation Envoyé par JFH83
    Mille mercis tee_grandbois je me suis entêté depuis 5 jours
    de rien...
    pense à mettre le sujet

    Mais sait-on quels sont les sages et quels sont les fous, dans cette vie où la raison devrait souvent s'appeler sottise et la folie s'appeler génie ?

    Guy de Maupassant

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

Discussions similaires

  1. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  2. [SQL] Utilisation de variables dans une requête SQL
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/09/2006, 22h38
  3. utiliser un controle dans une Requête
    Par issam16 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/06/2006, 11h06
  4. Réponses: 4
    Dernier message: 16/02/2006, 16h28
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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