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 :

Gestion Emploi du Temps d'une école


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Gestion Emploi du Temps d'une école
    Bonjour,

    Ce message s'adresse principalement à User, mais bien sur toute aide est la bien venue.

    J'ai lu beaucoup de sujet sur la gestion d'un établissement scolaire mais sans vraiment trouver ce que je cherche.

    Je me lance donc dans ce périlleux exercice et souhaite pour ce faire m'appuyer sur l'un des deux exemples de "User" ci dessous

    - Emploi_Temps.mdb qui a l'avantage d'être fixe (semainier uniquement) mais moins de fonctions
    - Agenda v23_9.mdb

    Ma préférence irait plus tôt vers l'emploi du second puisqu'il permet des fonctionnalités diverses telles que

    - Glisser_déplacer des cours (RDV)
    - Affichage Hebdo et Journalier
    - etc...., mais je ne souhaites pas avoir un planning annuel

    J'ai regardé les codes des modules "Planning et Calendar" pour voir si je pouvais les modifier mais mes connaissances en vba sont limités et tous mes

    Des idées ou une aide ??

    Merci

    Roland

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Désolé mais je n'ai pas le temps en ce moment, j'essaierai de regarder ce week-end...

    Cdlt,
    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

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Bonjour et merci mais il n'y a pas d'urgence.

    Je tiens bien sur à ta disposition la gestion des absences , puisque c'est toi qui m'a aidé. Il ne me reste que l'interfaçage avec Orange.

    Bonne soirée

    Roland

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Si vous souhaitez partir de l'exemple "23_9", le mieux serait de garder la même structure et les mêmes noms de champs et de tables de façon à ne pas tout refaire.

    Le terme "rdv" étant assez général on peut l'employer un peu à toutes les sauces.

    Ensuite, modifier les étiquettes au niveau des interfaces.

    Eventuellement, ajouter d'autres objets pour compléter la base...

    Tout ceci peut paraître évident, mais beaucoup de personnes choisissent de faire les choses à leur façon et cela complique les choses...

    Cdlt,
    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

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Merci de ta réponse mais c'est exactement ce que j'ai fait. Mon soucis est de transformer le code planning pour obtenir la même chose mais exclusivement sur une semaine et non sur plusieurs années. Il s'agit en fait de manipuler les DateD au format actuel
    MM;je:yyyy.
    Autrement cet emploi du temps est le même d'une semaine à l'autre.

    J'ai choisi l'exemple 23.9 car il permet la fonction glisser déplacer (utile pour affiner l'emploi du temps) ce que ne permet pas ton exemple intitulé "emploi du temps"

    Bonne fin de Weekend

    Roland

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Pour simplifier et éviter de tout refaire, l'idée serait de changer le format d'affichage des dates.

    Non pas dans le code, mais uniquement sur les formulaires, et sur les zones de texte:

    Donc, masquer la zone de texte DateD et le titre du planning,

    Au niveau des formulaires de saisie, changer le format (propriété "Format" des zones de texte dateRdv1 et dateRdv2) en jjjj ce qui devrait afficher uniquement le jour de la semaine...

    Cdlt,
    Denis
    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

  7. #7
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Bonjour,

    User, j'ai suivi vos conseils et ai donc changé les formats d'affichage des dates dans les formulaires et les zones de texte.

    J'ai également masqué la zone de texte DateD et le titre (cad propriété visible du champ =Non). L'ensemble fonctionne mais le planning reste annuel ce qui fait qu'au début de la semaine prochaine mon emploi du temps aura "vieilli" d'une semaine et deviendra donc invisible du fait du code "Planning" qui bien que caché reste lui annuel.

    Je joins une image de l'"Emploi du temps Journalier" sur lequel l'on voit nettement la date d'aujourd'hui au format annuel.

    Merci

    Roland
    Images attachées Images attachées
    • Type de fichier : pdf edt.pdf (169,8 Ko, 600 affichages)

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Au niveau du formulaire "F_Planning", déasctiver les boutons "préc." et "suiv.",
    sur l'événement chargement mettre par défaut le 1er jour de la semaine au "30/03/2015":

    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
    Private Sub Form_Load()
    ' Sur chargement du formulaire.
    
    On Error GoTo Err_Form_Load
    
    Me.IdMedecin = Me.IdMedecin.ItemData(IndMedecin)
    
    DateDebut = #3/30/2015#  ' Renvoie le premier jour de la semaine courante.
    MajPlanning ' Met à jour le planning.
    DoCmd.Maximize
    
    Exit_Form_Load:
        Exit Sub
    
    Err_Form_Load:
        Set goHeader = Nothing
        Set goPlanning = Nothing
        MsgBox Err.description
        Resume Exit_Form_Load
    
    End Sub
    Dans le module "M_Planning" et dans la procédure "InitPlanning" changer le code à la fin de la boucle comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
     
    goHeader.DrawText 1, i, 1, i, Format(DateC, "dddd"), 12, 1, 1, vbBlack, False
     
    Next i
    Même chose dans la procédure InitPlan à la fin:

    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
    ...
     
    goHeader.DrawText 1, 1, 1, 1, Format(DateC, "dddd"), 12, 1, 1, vbBlack, False
     
    goHeader.Refresh
     
    Exit_InitPlan:
        Exit Sub
     
    Err_InitPlan:
        Set goHeader = Nothing
        Set goPlanning = Nothing
        MsgBox Err.description
        Resume Exit_InitPlan
     
    End Sub

    Après va rester le problème de l'agenda journalier...

    Su chargement du formulaire "F_Plan" mettre la date du 1er jour de cette semaine par défaut :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub Form_Load()
     
    On Error GoTo Err_Form_Load
     
    Dim rst As DAO.Recordset
     
    DateDebut = #3/30/2015#
     
    Me.IdMedecin = Me.IdMedecin.ItemData(IndMedecin)
     
    Me.Filter = ""
    Me.FilterOn = False
     
    Set rst = Me.RecordsetClone
     
    rst.FindFirst "(IdMedecin = " & Nz(Forms!F_Plan!IdMedecin, 0) & ") And Jour = " & FormatDateUS(DateDebut)
     
        If Not (rst.NoMatch) Then
            Me.Bookmark = rst.Bookmark
        Else
            DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
     
        End If
     
    Set rst = Nothing
     
    MajPlan
    DoCmd.Maximize
     
    Exit_Form_Load:
        Exit Sub
     
    Err_Form_Load:
        Set goHeader = Nothing
        Set goPlanning = Nothing
        MsgBox Err.description
        Resume Exit_Form_Load
     
    End Sub
    Sur l'événement clic du bouton précédent modifier le début du code comme ceci :

    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 CmdPrecedent_Click()
     
    On Error GoTo Err_CmdPrecedent_Click
     
    Dim rst As DAO.Recordset
     
       If DateDebut = #3/30/2015# Then
          Exit Sub
       End If
     
    DateDebut = DateDebut - 1
     
    ...
    Sur l'événement clic du bouton suivant modifier le début du code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CmdSuivant_Click()
     
    On Error GoTo Err_CmdSuivant_Click
     
    Dim rst As DAO.Recordset
     
       If DateDebut = (#3/30/2015# + 6) Then
          Exit Sub
       End If
     
    DateDebut = DateDebut + 1
    Pour ne pas dépasser la semaine du "30/03/2015"...

    Cdlt,
    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

  9. #9
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Fabuleux, Merci

    Roland

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut


    C'est juste que je suis déjà passé par là
    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

  11. #11
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Emploi du temps
    Bonjour,
    Je reviens à mon dernier post du 31/03 dans lequel j’expliquais que je souhaitais utiliser le fichier modèle de User pour la gestion d’un emploi du temps.
    Les différences sont minimes, un médecin devient un Professeur et un patient pourrait être une matière (Anglais par exemple).
    Mon soucis actuel vient du fait que j’utilise non pas une table à liste déroulante (T_Patient) dans le formulaire « F_RendezVous » mais un formulaire « F_EProfesseur » avec un sous formulaire qui résume les cours dispensés par un seul professeur (Voir fichier joint).
    Ce sous formulaire est réalisé par une requête qui actuellement prend en compte :
    - Les classes (spécialisées ou non)
    - Les diverses Matières
    - Les divers groupes (ex Langue vivante 1)
    Mais également une codification des cours par exemple « BTS1_ANG_LV1 ». C’est cette codification que je souhaite faire apparaitre sur l’agenda hebdomadaire du professeur concerné.
    Je ne sais pas modifier le code vba suivant lorsqu’il s’agit d’un sous formulaire et non d’une table :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Private Sub CmdValider_Click()
    ' Valide les choix effectués sur le formulaire "F_RendezVous".
     
    On Error GoTo Err_CmdValider
     
    Dim n As Long
    Dim HD As Date, HF As Date
     
    ' Si les zones de texte "IdMatière" ou "Memo" ne sont pas vides
     
       If ((Me!IdMatière <> "") And Not IsNull(Me!IdMatière)) Or _
          ((Me!Memo <> "") And Not IsNull(Me!Memo)) Then
       HD = CDate(Me!DateRdV1) + CDate(Me!HoraireD)
       HF = CDate(Me!DateRdV2) + CDate(Me!HoraireF)
     
          If (Format(HF, "hh:nn") <= Format(HeureFin, "hh:nn")) And (HD < HF) Then
     
    ' On recherche des RDV dont les horaires de début et de fin chevauchent les
    ' horaires choisis sur le formulaire.
     
          n = Nz(DLookup("[NR]", "T_EProfesseur", "(IdProfesseur= " & Nz(Me!IdProfesseur, 0) & ") and (NR<>" & Nz(Me!NR, 0) & ") And HoraireDebut<" & FormatDateUS(HF) & " And HoraireFin>" & FormatDateUS(HD)), 0)
     
    ' si aucun RDV n'a été trouvé, la plage horaire est donc disponible et on peut
    ' enregistrer le RDV.
     
             If (n = 0) Then
             Me!HoraireDebut = HD
             Me!HoraireFin = HF
             Me.Requery
             MajEDTProfesseur
             DoCmd.Close
     
             Else
             MsgBox ("Saisie incorrecte !")
     
             End If
     
          Else
          MsgBox ("Saisie incorrecte !")
     
          End If
     
       Else
       MsgBox ("Saisie incorrecte !")
       End If
     
    Exit_CmdValider:
        Exit Sub
     
    Err_CmdValider:
        Set goHeader = Nothing
        Set goEDTProfesseur = Nothing
        MsgBox Err.description
        Resume Exit_CmdValider
     
    End Sub
    Merci d'avance

    Roland
    Images attachées Images attachées  

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Pourquoi un sous-formulaire ?

    Si vous souhaitez faire un choix de cours, pourquoi pas :

    1) ajouter une liste déroulante alimenté par votre requête (la mettre sur la propriété Contenu de la liste) actuellement source du sous-formulaire.

    2) Ajouter un champ "Cours" dans la table "T_RendezVous". Il constitue l'identifiant ou la clé dans la table des cours.

    3) Mettre ce champs sur la propriété "Contrôle source" de la nouvelle liste déroulante située sur le formulaire "F_EProfesseur"

    Ensuite, il faudra récupérer ce champ cours dans la requête "R_Planning" ou "R_Rendez-vous" et aussi dans la procédure "MajPlanning"...

    Cdlt,
    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
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Bonjour et merci de votre prompte réponse, comme d’habitude.

    J’ai suivi à la lettre vos conseils mais sans résultat mais je crois savoir pourquoi sans néanmoins réussir à résoudre ce problème :
    Je n’ai en fait aucune T_Cours donc pas de véritable clé « IdCours ». La liste des cours est obtenue au travers d’une requête qui me regroupe l’ensemble des
    - Classes (NomClasse)
    - Matières (LibelléFamilleMatière)
    - Groupes (Libellé)
    - Et d’une expression intitulée « Codification »
    Suivant le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT R_ProfesseurCoursMatière.IdProfesseur, T_Classe.NomClasse, T_Classe.Effectif, R_ProfesseurCoursMatière.LibelléFamilleMatière, R_ProfesseurCoursMatière.Libellé, T_Classe.CodeClasse, [T_Classe]![CodeClasse] & " " & [R_ProfesseurCoursMatière]![CodeCours] & " " AS Codification, R_ProfesseurCoursMatière.NomProfesseur, R_ProfesseurCoursMatière.CodeCours, *
    FROM T_Classe, R_ProfesseurCoursMatière
    WHERE (((R_ProfesseurCoursMatière.IdProfesseur)=[Formulaires]![F_EDTProfesseur]![IdProfesseur]))
    ORDER BY T_Classe.NomClasse, R_ProfesseurCoursMatière.LibelléFamilleMatière, R_ProfesseurCoursMatière.Libellé
    WITH OWNERACCESS OPTION;

    J’ai également essayé ensuite de faire une requête « création de Table « ou une requête « Ajout » mais sans plus de succès.

    Je sèche…

    Merci

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut Reconstruire la source de la liste déroulante
    Bonjour,

    Utilisez la balise de code pour une meilleur lecture de vos messages.

    Concernant votre problème, il faut créer un champ "cours" dans la table "T_RendezVous",
    Insérer une liste déroulante sur le formulaire de saisie, ayant comme "contrôle source" le champ "Cours" et comme contenu, la requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT T_Classe.NomClasse & "_" & R_ProfesseurCoursMatière.LibelléFamilleMatière & "_" & R_ProfesseurCoursMatière.Libellé
    FROM T_Classe, R_ProfesseurCoursMatière
    WHERE (((R_ProfesseurCoursMatière.IdProfesseur)=[Formulaires]![F_EDTProfesseur]![IdProfesseur]))
    ORDER BY T_Classe.NomClasse, R_ProfesseurCoursMatière.LibelléFamilleMatière, R_ProfesseurCoursMatière.Libellé
    WITH OWNERACCESS OPTION;

    Je vous laisse choisir les 3 champs dans le select pour afficher un code du type :

    « BTS1_ANG_LV1 »

    Ensuite, reprendre ce champ "cours" dans la procédure MajPlanning.

    Cdlt,
    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

  15. #15
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Merci beaucoup. c'est bon ! A la prochaine .......

    Roland

  16. #16
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Emploi du Temps
    Bonjour,
    Mon appli, dérivée de « Agenda V23_9, avance bien. Mais j’aurais maintenant besoin de 2 conseils pour la phase suivante :
    1_ Je souhaiterai ajouter un second formulaire « F_Disponibilités » (tables et requêtes correspondantes) similaire à « F_RendezVous » qui me permettrait de remplir le planning des disponibilités des professeurs (Indisponible ou Vœux et Souhaits).
    J’ai fait l’essai en désignant ces deux enregistrements comme deux classes supplémentaires, cela fonctionne mais ce n’est pas propre ; d’où ma demande.
    La piste est-elle la bonne ??
    2_ Y a-t-il une limite en nombre dans l’utilisation des cases d’option pour modifier la couleur de fond des col et rows. J’ai environ 25 cours + 2disponibilités d’où deux formulaires de type F_ParametrerCouleurs (un RDV + un Dispo)
    A terme, je souhaiterai afficher sur les cellules du planning :
    - La Classe : ex : BTS 1
    - Le Cours : Anglais Langue vivante 1
    - La Salle : Mozart
    Le professeur (Médecin) n’est pas concerné par cette présentation.
    Ma question est la suivante : comment organiser des sauts de ligne dans la requête correspondante ?
    J’ai essayé avec l’instruction « vbCrLf » mais sans résultat.
    Merci d’avance

    Roland

  17. #17
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Il faudrait plutôt partir de ces exemples (cf. "agendadentreprises v10.11.12").

    Ils permettent de définir des horaires de disponibilité et d'ajouter sur ces horaires des rendez-vous.

    Cdlt,
    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

  18. #18
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Bonjour,
    Bonjour,
    J’ai téléchargé les fichiers « Agendas V11 et V13 » mais je n’ai pu les ouvrir sans un message d’erreur « 2683 Pas d’objet dans ce contrôle ».
    J’utilise un PC 64bits avec Access 2013 32bits et les exécutables « regsrv32 » sont bien dans les dossiers correspondants.
    J’ai pu tout de même visionner les divers fichiers de ces bases avec des F_RendezVous, F_RendezVous Bis et F_RendezVous Ter.
    Dans la solution actuellement utilisée (Base V23.9), je pense utiliser un seul formulaire F_EProfesseur (F_RendezVous) sur lequel je rajoute une liste déroulante (« Indisponible » ou « Vœux et Souhait » sur champ le « IdDisponibilités » du formulaire.
    - Si le champ « IdDisponibilités » n’est pas rempli, c’est le champ « Cours » qui déroule sa procédure
    - Si le champ « IdDisponibilités » prend l’une des valeurs « Indisponible » et « Vœux et Souhaits » le champ »Cours » ne doit plus être pris en compte.
    En fait, il s’agit d’une bascule entre les champs « IdDisponibilités » et « Cours » pour lequel je vous soumets les adaptations du code, qui ne fonctionne pas bien entendu !!

    Commande Valider du F_EProfesseur


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Private Sub CmdValider_Click()
    ' Valide les choix effectués sur le formulaire "F_EProfesseur".
     
    On Error GoTo Err_CmdValider
     
    Dim n As Long
    Dim HD As Date, HF As Date
     
    ' Si les zones de texte "Cours" ou "Memo" ne sont pas vides
    'Forms!F_EProfesseur!IdDisponibilités.Value = IsNull
     If ((Me!Cours <> "") And Not IsNull(Me!Cours)) Or _
     ((Me!Memo <> "") And Not IsNull(Me!Memo)) Then
       HD = CDate(Me!DateRdV1) + CDate(Me!HoraireD)
       HF = CDate(Me!DateRdV2) + CDate(Me!HoraireF)
     
    ' Si les zones de texte "Disponibilités" ou "Memo" ne sont pas vides
    Else
    'Forms!F_EProfesseur!IdDisponibilités.Value = Not IsNull
       If ((Me!IdDisponibilités <> "") And Not IsNull(Me!IdDisponibilités)) Or _
     ((Me!Memo <> "") And Not IsNull(Me!Memo)) Then
       HD = CDate(Me!DateRdV1) + CDate(Me!HoraireD)
       HF = CDate(Me!DateRdV2) + CDate(Me!HoraireF)
     End If
     End If
          If (Format(HF, "hh:nn") <= Format(HeureFin, "hh:nn")) And (HD < HF) Then
     
    ' On recherche des RDV dont les horaires de début et de fin chevauchent les
    ' horaires choisis sur le formulaire.
     
          n = Nz(DLookup("[NR]", "T_EProfesseur", "(IdProfesseur= " & Nz(Me!IdProfesseur, 0) & ") and (NR<>" & Nz(Me!NR, 0) & ") And HoraireDebut<" & FormatDateUS(HF) & " And HoraireFin>" & FormatDateUS(HD)), 0)
     
    ' si aucun RDV n'a été trouvé, la plage horaire est donc disponible et on peut
    ' enregistrer le RDV.
     
             If (n = 0) Then
             Me!HoraireDebut = HD
             Me!HoraireFin = HF
             Me.Requery
             MajEDTProfesseur
             DoCmd.Close
     
             Else
             MsgBox ("Saisie incorrecte !")
     
             End If
     
          Else
          MsgBox ("Saisie incorrecte !")
     
          End If
     
     
     
     
    Exit_CmdValider:
        Exit Sub
     
    Err_CmdValider:
        Set goHeader = Nothing
        Set goEDTProfesseur = Nothing
        MsgBox Err.description
        Resume Exit_CmdValider
    End Sub



    M_Planning


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Public Sub MajEDTProfesseur()
    ' La procedure de mise à jour des rendez-vous sur le planning en fonction de la date de début :
    ' La procedure selectionne dans la table T_RendezVous les RDV compris entre la date de début (DateDebut) et la date de debut + 7 jours (DateDebut+7),
    ' puis met à jour le planning avec ces rendez-vous.
    ' Pour chaque RDV l'horaire de début et l'horaire de fin permettent de dimensionner le label correspondant au creneau horaire du début.
     
    On Error GoTo Err_MajEDTProfesseur
     
    Dim RsPL As DAO.Recordset
    Dim Ligne As Integer, Col As Integer
    Dim LeSQL As String
    Dim i As Integer, D As Integer
    Dim Color As Long
     
    ' Sélectionne les RDV compris entre DateDebut et DateDebut+7
    LeSQL = "SELECT R_EProfesseur.* " & _
    "FROM R_EProfesseur " & _
    "WHERE (IdProfesseur= " & Nz(Forms!F_EDTProfesseur!IdProfesseur, 0) & ") and (R_EProfesseur.HoraireDebut between " & FormatDateUS(DateDebut) & " And " & FormatDateUS(DateDebut + 7) & ")"
     
    Set RsPL = CurrentDb.OpenRecordset(LeSQL, dbOpenForwardOnly)
     
    'Forms!F_EDTProfesseur!Titre.Caption = "EDTProfesseur DE LA SEMAINE DU " & UCase(Format(DateDebut, "dd mmmm yyyy")) & " AU " & UCase(Format(DateDebut + 6, "dd mmmm yyyy"))
    'Forms!F_EDTProfesseur!DateD.Value = DateDebut
     
    ' initialise le EDTProfesseur
    InitEDTProfesseur
     
    MajPostIt
     
       Do While Not (RsPL.EOF) ' on parcours les RDV
     
          If Not IsNull(RsPL!Couleur) Then
             Color = RsPL!Couleur ' définit la couleur du label.
     
          Else
             Color = vbWhite
     
          End If
     
             Col = IndiceColonne(RsPL!HoraireDebut)
             Ligne = PremierCreneau(RsPL!HoraireDebut)
     
             D = DateDiff("n", RsPL!HoraireDebut, RsPL!HoraireFin) \ TrancheHoraire ' on determine le Libellébre de creneaux horaires correspondants à la durée du rdv
     
             With goEDTProfesseur
     
    'If Forms!F_EDTProfesseur!LibelléDisponibilités.Value = "" Then
     
        If IsNull(RsPL!IdDisponibilités) Then
             .DrawRect Ligne, Col, (Ligne + D - 1), Col, Color, vbBlack, 1
             .DrawText Ligne, Col, (Ligne + D - 1), Col, Nz(RsPL!Memo, ""), 12, 1, 1, vbBlack, False
     
             Else
             .DrawRect Ligne, Col, (Ligne + D - 1), Col, Color, vbBlack, 1
             .DrawText Ligne, Col, (Ligne + D - 1), Col, RsPL!Cours, 12, 1, 1, vbBlack, False
     
             End If
      'Else
       If Not IsNull(RsPL!IdDisponibilités) Then
             .DrawRect Ligne, Col, (Ligne + D - 1), Col, Color, vbBlack, 1
             .DrawText Ligne, Col, (Ligne + D - 1), Col, Nz(RsPL!Memo, ""), 12, 1, 1, vbBlack, False
     
             Else
             .DrawRect Ligne, Col, (Ligne + D - 1), Col, Color, vbBlack, 1
             .DrawText Ligne, Col, (Ligne + D - 1), Col, RsPL!IdDisponibilités, 12, 1, 1, vbBlack, False
     
             End If
     
     ' End If
     
     
     
             End With
     
       RsPL.MoveNext
       Loop
     
    ' libération
     
    goEDTProfesseur.KeepImage
    goEDTProfesseur.Refresh
     
    RsPL.Close
    Set RsPL = Nothing
     
    Exit_MajEDTProfesseur:
        Exit Sub
     
    Err_MajEDTProfesseur:
        Set goHeader = Nothing
        Set goEDTProfesseur = Nothing
        MsgBox Err.description
        Resume Exit_MajEDTProfesseur
     
    End Sub
    Je fais également les Mise à jour “After Update” des champs “IdDisponibilités” et “Cours”

  19. #19
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 112
    Points : 65
    Points
    65
    Par défaut Re
    Peut être l'utilisation d'un bouton bascule ou d'une case d'option à cocher sur la la propriété "Actif/inactif peut il résoudre ceci ??

    Merci

    Roland

  20. #20
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Quand vous dites que ça ne fonctionne pas, quel message d'erreur obtenez-vous ?

    En dernier recours postez moi votre base.

    Cdlt,
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Cas d'utilisation : Gestion emploi du temps
    Par Adenora dans le forum Cas d'utilisation
    Réponses: 4
    Dernier message: 06/11/2012, 17h10
  2. Réponses: 2
    Dernier message: 17/02/2010, 21h32
  3. Réponses: 4
    Dernier message: 30/07/2008, 18h29
  4. [MySQL] gestion emploi du temps de l'universite
    Par tkhchkhiche dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/04/2008, 16h31
  5. [MySQL] Gestion emploi du temps
    Par freko dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 29/01/2008, 13h40

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