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 :

Implantation de dates fixes sur un calendrier et suivi hebdomadaire [AC-2010]


Sujet :

Access

  1. #41
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Citation Envoyé par Didier L Voir le message
    As tu essayé le code ? Fonctionne t'il ?
    Oui, la fonction EstFerie ne fonctionne pas je crois, et ce qui entraine le dysfonctionnement de la fonction JourChome je pense ?

    Citation Envoyé par Didier L Voir le message
    Je n'ai pas vraiment compris ta question, mais si ma réponse n'est pas claire, essaye de reformuler ta question
    Depuis que j'ai rajouté ce codé, le calcul des dates de ne s'effectue plus. Les as-tu testé par hasard ? (les fonctions)

    Merci, CDLT

  2. #42
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    La fonction fLundiPaques, est déclarée en "private" mais est utilisée dans une autre fonction, c'est un incohérence non ?

    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 Function fLundiPaques(ByVal Iyear As Integer) As Date
            'Adapté de +ieurs scripts...
            Dim L(6) As Long, Lj As Long, Lm As Long
     
            L(1) = Iyear Mod 19: L(2) = Iyear Mod 4: L(3) = Iyear Mod 7
            L(4) = (19 * L(1) + 24) Mod 30
            L(5) = ((2 * L(2)) + (4 * L(3)) + (6 * L(4)) + 5) Mod 7
            L(6) = 22 + L(4) + L(5)
     
            If L(6) > 31 Then
                    Lj = L(6) - 31
                    Lm = 4
            Else
                    Lj = L(6)
                    Lm = 3
            End If
     
            ' Lundi de Pâques = Pâques + 1 jour
            fLundiPaques = DateAdd("d", 1, (Lj & "/" & Lm & "/" & Iyear))
     
    End Function
    EDIT : j'ai réessayer, et cela fonctionne, on se decale bien lorsque c'est le week end ou un jour férié MERCI Didier Ne me reste plus qu'à incrémenter ces dates dans un formulaire de navigation, tu penses que cela est réalisable ? Pour voir chaque semaine (pour chaque jour ce qu'il y a à faire)

    Nom : Navi.png
Affichages : 144
Taille : 21,4 Ko

    Je voudrais également afficher le type de graisse à utiliser, dans le formulaire (suffit-il de rajouter un champ supplémentaire ? et il remontera tout seul jusqu'à la graisse correspondante ?)

    Cordialement

  3. #43
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Pour le type de graisse, rien ne se fait tout seul "malheureusement"
    Il faut que dans la requête source de ton formulaire ou sous formulaire ou tu veux afficher tes informations, tu rajoute la table typede graisse + la ou les table qui vont te permettre de faire toutes les relation jusqu’à ta "T_taches".

    Ensuite pour voir toutes les taches sous forme d'onglet avec le jour c'est possible, mais il faudra faire tes lien "père" "fils" entre ton formulaire principal (dans lequel tu a ton onglet) et tes sous formulaires (contenu des onglets) sur la date choisie (date de l'onglet) et il te faudra surement des bouton pour avancer ou reculer d'une semaine.
    Ces boutons pourrons changer les dates (champs invisibles) des 5 dates des 5 jours de la semaines qui seront tes liens "pères" "fils" avec tes sous formulaires contenu dans chaque onglet.
    Sache que tu peux insérer 5 fois le même sous formulaire

    Mais pour cette construction je t'invite à changer de "post" et à clore celui ci
    @+


    Pensez au tag

  4. #44
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Citation Envoyé par Didier L Voir le message
    Pour le type de graisse, rien ne se fait tout seul "malheureusement"
    Il faut que dans la requête source de ton formulaire ou sous formulaire ou tu veux afficher tes informations, tu rajoute la table typede graisse + la ou les table qui vont te permettre de faire toutes les relation jusqu’à ta "T_taches".
    Cela m'importe peu d'avoir un formulaire récapitulatif pour chaque point (comme j'ai actuellement) :

    Nom : VuePoint.png
Affichages : 159
Taille : 37,0 Ko

    Du moment, que pour chaque jour correspondant à une date, j'ai : Le point, sa localisation, sur quelle machine, avec quelle graisse ... Ces parametres sont à "rentrer" dans le formulaire de navigation ? Ou faut-il que ce dernier vienne "piocher" dans une formulaire comme ci dessus ?

    Dernier petit pepin : En ce qui concerne le décalage des jours non ouvrés, par exemple : pour une fréquence de 2 jours qui tombe un vendredi (la prochaine maintenance tombe un dimanche), grâce au code, elle est reportée à Lundi, cependant elle devrait être mardi (on ne doit compter que les jours où les machines sont en activités ), donc il faudrait que cela tombe le mardi (vendredi +2), j'ai essayé d'introduire la fonction estChome dans la boucle "tant que", mais en vain je ne vois pas vraiment comment y parvenir ... Grossierement il faudrait "supprimer" les jours non ouvrés (j'espere que tu m'as suivis)

    En ce qui concerne la date de fin de calcul, j'ai essayé de mettre : DateAdd("d", 7, Date) pour que le calcul se fasse pour toutes les semaines a chaque ouverture du formulaire, est-ce la bonne solution ? Je m'explique : j'aimerai que le lundi matin, lorsqu'il ouvrira le planning des tâches, toute la prévision de la semain puisse s'afficher (Du lundi au vendredi) ... le mardi matin, quand il ouvrira (du mardi au lundi d'apres) ... le mercredi (du mercredi au mardi d'apres) etc ... Ou autrement, un recalcul a chaque debut de semaine ? (Peu importe le nombre de fois qu'il ouvrira le planning dans la semaine, le calcul ne s'effectuera qu'une seule fois) il faut surtout éviter les doublons je pense.

    EDIT : Ce que j'ai cerclé en rouge, c'est parcequ'avec la requete "=RechDom("Mac_Nom";"T_Machines";[Poi_Fk_Mac_ID])", il me donne toujours le même Nom de Machine et pareil pour le type de point ... Mystere pour moi ?

    Citation Envoyé par Didier L Voir le message
    Ensuite pour voir toutes les taches sous forme d'onglet avec le jour c'est possible, mais il faudra faire tes lien "père" "fils" entre ton formulaire principal (dans lequel tu a ton onglet) et tes sous formulaires (contenu des onglets) sur la date choisie (date de l'onglet) et il te faudra surement des bouton pour avancer ou reculer d'une semaine.
    Ces boutons pourrons changer les dates (champs invisibles) des 5 dates des 5 jours de la semaines qui seront tes liens "pères" "fils" avec tes sous formulaires contenu dans chaque onglet.
    Sache que tu peux insérer 5 fois le même sous formulaire

    Mais pour cette construction je t'invite à changer de "post" et à clore celui ci
    Suite à ta réponse, je validerai de ce pas ce post

    Encore un grand merci
    Cordialement

  5. #45
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    ce beau formulaire te permet de créer tes points et de générer ton planning.
    Mais je suis d'accord que ce n'est pas le meilleur formulaire pour consulter ton planning.
    Il est cependant nécessaire pour l'enrichir au cas ou tu ajoute une nouvelle machine et des nouveaux point ou l'inverse (si une machine par à la casse ;-)

    Dernier petit pepin : En ce qui concerne le décalage des jours non ouvrés, par exemple : pour une fréquence de 2 jours qui tombe un vendredi (la prochaine maintenance tombe un dimanche), grâce au code, elle est reportée à Lundi, cependant elle devrait être mardi (on ne doit compter que les jours où les machines sont en activités ), donc il faudrait que cela tombe le mardi (vendredi +2), j'ai essayé d'introduire la fonction estChome dans la boucle "tant que", mais en vain je ne vois pas vraiment comment y parvenir ... Grossierement il faudrait "supprimer" les jours non ouvrés (j'espere que tu m'as suivis)
    Si je comprend bien la fréquence ne s'utilise que pour les jours "travaillés" donc il ne faut pas compter dans cette fréquence tous les jours chomés ?
    essaye le code suivant dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CreerCalendrier(ByVal pnPointID As Long, ByVal pdDebut As Date, ByVal pdFin As Date, ByVal pnFrequence As Integer)
    Dim vdMaDate As Date
    Dim NbJ as Integer
        vdMaDate = pdDebut 'Récupère la date du premier entretient
        While vdMaDate <= pdFin 'bouce jusqu'a la date de fin de l'entretien ou du calcul du planning
            CurrentDb.Execute "Insert Into T_Taches (Tac_Fk_Poi_ID,Tac_DateIntervention) Values (" & pnPointID & ",#" & Format(vdMaDate, "mm/dd/yyyy") & "#)"
    	Nbj=1
    	While Nbj <= pnFrequence
    	    vdMaDate = vdMaDate + 1
    	    If not JourChome(vdMaDate) then Nbj = Nbj+1
            Wend
        Wend
    End Sub
    En ce qui concerne la date de fin de calcul, j'ai essayé de mettre : DateAdd("d", 7, Date) pour que le calcul se fasse pour toutes les semaines a chaque ouverture du formulaire, est-ce la bonne solution ? Je m'explique : j'aimerai que le lundi matin, lorsqu'il ouvrira le planning des tâches, toute la prévision de la semain puisse s'afficher (Du lundi au vendredi) ... le mardi matin, quand il ouvrira (du mardi au lundi d'apres) ... le mercredi (du mercredi au mardi d'apres) etc ... Ou autrement, un recalcul a chaque debut de semaine ? (Peu importe le nombre de fois qu'il ouvrira le planning dans la semaine, le calcul ne s'effectuera qu'une seule fois) il faut surtout éviter les doublons je pense.
    je ne travaillerai pas ainsi.
    Je calculerai le planning total jusqu'au 31/12/2020 par exemple et après j'affiche le planning en fonction de la date du jour.
    J'ai 5 champs invisible.
    Date1, Date2, Date3, Date4, Date5
    Date1 sera égal à la date du jour grâce à la fonction date()
    Date2 sera égal à la Date() + 1, etc ...
    A l'ouverture du formulaire je change les nom de mes onglet grace a la fonction format.
    le premier onglet sera égal au format de date1, etc ...
    Pour la fonction Format utilise le format "dddd" pour avoir le jour en entier.
    Ensuite dans chaque onglet j'ai un sous formulaire en mode continu qui m'affiche le résultat d'une requête basé sur la table tache et allant jusqu’à la table type de graisse et qui m'affiche les informations nécessaire à mon planning.
    Ensuite je relie chacun de mes sous formulaires avec pour relation père fils, date1 pour le premier avec la date de la tâche , date2 et la date de la tache pour le second sous formulaire, etc ...

    Ce que j'ai cerclé en rouge, c'est parcequ'avec la requete "=RechDom("Mac_Nom";"T_Machines";[Poi_Fk_Mac_ID])", il me donne toujours le même Nom de Machine et pareil pour le type de point ... Mystere pour moi ?
    C'est normal car il te manque la condition
    Essaye plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("Mac_Nom";"T_Machines";"Mac_ID=" & [Poi_Fk_Mac_ID])
    afin qu'il sache avec quel champ tu veux faire correspondre la valeur contenu dans "Poi_Fk_Mac_ID"
    @+


    Pensez au tag

  6. #46
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Citation Envoyé par Didier L Voir le message
    ce beau formulaire te permet de créer tes points et de générer ton planning.
    Mais je suis d'accord que ce n'est pas le meilleur formulaire pour consulter ton planning.
    Il est cependant nécessaire pour l'enrichir au cas ou tu ajoute une nouvelle machine et des nouveaux point ou l'inverse (si une machine par à la casse ;-)
    D'accord, donc elles éxisteront mais "l'opérateur" ne sera quasiement jamais ammené à les consulter ? Il ne se servira que du formulaire de navigation ? Pour voir ce qu'il a à faire chaque jour


    Citation Envoyé par Didier L Voir le message
    Si je comprend bien la fréquence ne s'utilise que pour les jours "travaillés" donc il ne faut pas compter dans cette fréquence tous les jours chomés ?
    essaye le code suivant dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CreerCalendrier(ByVal pnPointID As Long, ByVal pdDebut As Date, ByVal pdFin As Date, ByVal pnFrequence As Integer)
    Dim vdMaDate As Date
    Dim NbJ as Integer
        vdMaDate = pdDebut 'Récupère la date du premier entretient
        While vdMaDate <= pdFin 'bouce jusqu'a la date de fin de l'entretien ou du calcul du planning
            CurrentDb.Execute "Insert Into T_Taches (Tac_Fk_Poi_ID,Tac_DateIntervention) Values (" & pnPointID & ",#" & Format(vdMaDate, "mm/dd/yyyy") & "#)"
    	Nbj=1
    	While Nbj <= pnFrequence
    	    vdMaDate = vdMaDate + 1
    	    If not JourChome(vdMaDate) then Nbj = Nbj+1
            Wend
        Wend
    End Sub
    C'est tout à fait ca, merci Didier (J'avais essayer avec une sorte de "without" mais en vain) celui ci marche parfaitement.

    Citation Envoyé par Didier L Voir le message
    je ne travaillerai pas ainsi.
    Je calculerai le planning total jusqu'au 31/12/2020 par exemple et après j'affiche le planning en fonction de la date du jour.
    J'ai 5 champs invisible.
    Date1, Date2, Date3, Date4, Date5
    Date1 sera égal à la date du jour grâce à la fonction date()
    Date2 sera égal à la Date() + 1, etc ...
    A l'ouverture du formulaire je change les nom de mes onglet grace a la fonction format.
    le premier onglet sera égal au format de date1, etc ...
    Pour la fonction Format utilise le format "dddd" pour avoir le jour en entier.
    Ensuite dans chaque onglet j'ai un sous formulaire en mode continu qui m'affiche le résultat d'une requête basé sur la table tache et allant jusqu’à la table type de graisse et qui m'affiche les informations nécessaire à mon planning.
    Ensuite je relie chacun de mes sous formulaires avec pour relation père fils, date1 pour le premier avec la date de la tâche , date2 et la date de la tache pour le second sous formulaire, etc ...
    Travailler comme cela me correspond parfaitement, mais je pensais qu'avec la la densité de points que j'aurais à la fin + le nombre de maintenance associée, cela ferait un peu lourd ?
    Donc si j'ai bien compris, le premier onglet, sera toujours à la date du jour ? Et chaque jour, ça se décale ? Tout en omettant les weeks ends et jours fériés ? (Je pense que cela ne doit plus être très compliqué désormais)
    En ce qui concerne l'historique de maintenance ? J'avais pensé à une petite case à cocher (ou autre) qui permettrait de valider et garder en mémoire les actions effectuées ...

    Citation Envoyé par Didier L Voir le message

    C'est normal car il te manque la condition
    Essaye plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("Mac_Nom";"T_Machines";"Mac_ID=" & [Poi_Fk_Mac_ID])
    afin qu'il sache avec quel champ tu veux faire correspondre la valeur contenu dans "Poi_Fk_Mac_ID"
    La fonction RechDom ne comporte que 3 champs (ici tu m'en a donné 4), j'ai essayé d'enlever le "=" après "Mac_ID", mais une fois en mode formulaire il m'affiche encore #Type!

    Est-ce parceque on a 4 champs ici ?

    Merci encore Didier Cordialement

  7. #47
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    D'accord, donc elles éxisteront mais "l'opérateur" ne sera quasiement jamais ammené à les consulter ?
    Oui
    Dans une même appli, il peut y avoir plusieurs profil d'utilisateur.
    Les opérateurs, mais aussi le responsable des machine ou du planning, qui lui peut faire des modifications, etc ...

    Il ne se servira que du formulaire de navigation ? Pour voir ce qu'il a à faire chaque jour
    Oui

    Travailler comme cela me correspond parfaitement, mais je pensais qu'avec la la densité de points que j'aurais à la fin + le nombre de maintenance associée, cela ferait un peu lourd ?
    Tu regarderas la taille de ta base, une fois rempli, je ne pense pas qu'elle soit très grosse
    Access peut gérer beaucoup de données, et la même si tu a beaucoup de ligne, tu aura peux d'information et pas "lourde" en plus

    Donc si j'ai bien compris, le premier onglet, sera toujours à la date du jour ? Et chaque jour, ça se décale ? Tout en omettant les weeks ends et jours fériés ? (Je pense que cela ne doit plus être très compliqué désormais)
    Oui c'est effectivement cela et grâce à ta fonction EstChome tu rajoutera 1 à la date tant que le jour est chômé

    En ce qui concerne l'historique de maintenance ? J'avais pensé à une petite case à cocher (ou autre) qui permettrait de valider et garder en mémoire les actions effectuées ...
    Très bonne idée
    Ainsi l'opérateur pourrait coché une tâche lorsqu'elle est réalisé et ainsi on ne visualise dans ton planning que les tâche "non cochée".
    Tu pourrais même avoir dans ton formulaire principal un case de choix avec deux bouton qui te renvoie les valeurs 0 et -1 et rajouter ce lien père fils avec tes sous formulaires, avec ta case à cocher, afin de faire apparaître (selon le choix) toutes tes tâches non cochées (planning) ou toutes celles qui sont cochées (historique).

    La fonction RechDom ne comporte que 3 champs (ici tu m'en a donné 4), j'ai essayé d'enlever le "=" après "Mac_ID", mais une fois en mode formulaire il m'affiche encore #Type!

    Est-ce parce que on a 4 champs ici ?
    Non, si tu regarde bien, nous n'avons bien que trois paramètres, séparés par un ";"
    Le dernier est recomposé avant l'exécution du RechDom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("Mac_Nom";"T_Machines";"Mac_ID=" & [Poi_Fk_Mac_ID])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Mac_ID=" & [Poi_Fk_Mac_ID]
    Par exemple si dans ta zonne [Poi_Fk_Mac_ID] il y a le nombre 2 alors cette synatxe sera remplacé par:
    le & sert d'opérateur de concaténation de chaîne (il les colle bout a bout)

    Si tu laisse la fonction comme je te l'ai donné, cela marche ou pas ? As tu un message d'erreur ?
    @+


    Pensez au tag

  8. #48
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Si tu laisse la fonction comme je te l'ai donné, cela marche ou pas ? As tu un message d'erreur ?
    Oui, #Type! et en ce qui concerne la fonction "Format" je l'ai mise sur l'ouverture du formulaire de navigation, j'ai créé dans VBA ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub Datum()
    Dim Date1 As Date
    Date1 = Date
    Dim Date2 As Date
    Date2 = Date + 1
    Dim Date3 As Date
    Date3 = Date + 2
    Dim Date4 As Date
    Date4 = Date + 3
    Dim Date5 As Date
    Date5 = Date + 4
     
    End Sub
    Dans le Module ? Est-ce correct ? Et dans le format j'ai rentré ca : =Format([Date1];"jjjj";[?????];[?????]) Pour les deux derniers je ne sais pas, j'ai essayé plusieurs chose mais :

    Nom : Erreur.jpg
Affichages : 137
Taille : 51,0 Ko

    Si tu pouvais m'indiquer mes erreurs (sachant que le Format je l'ai rentré dans le générateur d'expression)

    Cordialement

  9. #49
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Oui, #Type!
    Ou as tu mis ce RechDom ? as tu mis un "=" devant ?

    Ensuite dans ton formulaire crée 5 Champ de saisi "indépendant" que tu rendra invisble par la suite.
    Appelle les Date1, Date2, Date3, etc ...
    Ajoute un onglet avec tes 5 pages et appelle le "CtlTab"

    A l'ouverture de ton formulaire tu peux mettre le code suivant pour remplir ces zones :
    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 Form_Open(Cancel As Integer)
    Dim I As Integer
    Dim vdDate As Date
        vdDate = Date
        For I = 1 To 5
            While JourChome(vdDate)
                vdDate = vdDate + 1
            Wend
            Controls("Date" & I) = vdDate
            CtlTab.Pages(I - 1).Caption = Format(vdDate, "dddd")
            vdDate = vdDate + 1
        Next
    End Sub
    Et tu obtiendra le résultat suivant :
    Nom : Sans titre.png
Affichages : 187
Taille : 7,1 Ko

    Ensuite, a toi de rendre ces dates invisibles, et de t'en servir pour faire tes liens père fils avec tes sous formulaires
    @+


    Pensez au tag

  10. #50
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Ou as tu mis ce RechDom ? as tu mis un "=" devant ?
    Si j'en met pas il me dit #Nom!

    En ce qui concerne le "CtlTab", je ne vois pas bien où l'implanter ... J'ai fais un onglet supplémentaire invisible mais je ne vois pas comment il peut avoir des interractions avec les 5 onglets le précédant ... Les zones de texte de ces onglets ne pouvant être reliées a rien (pas de fonction Format possible).
    C'est au niveau des dates que le code agit ? Donc les 5 dates doivent être associées à "CtlTab" c'est bien ca?

    Cdlt

  11. #51
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non
    Le "ctltab" c'était le tient mais dans mon code je l'ai appelé "CtlTab" donc comme tu en avais déjà un, soit tu lui change son nom soit tu change mon code.
    ce code doit s'exécuter a l'ouverture du formulaire afin de modifier dynamiquement les libellé de tes pages de ton onglet et affecter le bonnes dates à tes 5 zones

    Peux tu poster ta base ou juste ton formulaire que je comprenne pourquoi ton RechDom ne marche pas ?
    @+


    Pensez au tag

  12. #52
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Non
    Le "ctltab" c'était le tient mais dans mon code je l'ai appelé "CtlTab" donc comme tu en avais déjà un, soit tu lui change son nom soit tu change mon code.
    ce code doit s'exécuter a l'ouverture du formulaire afin de modifier dynamiquement les libellé de tes pages de ton onglet et affecter le bonnes dates à tes 5 zones
    C'est le nom du formulaire de navigation ? Ou as-tu vu qu'il s'appelait ctltab ?


    Citation Envoyé par Didier L Voir le message
    Peux tu poster ta base ou juste ton formulaire que je comprenne pourquoi ton RechDom ne marche pas ?
    Je te l'envoi par MP ?

  13. #53
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Soit tu me l'envoi en MP soit tu peut l'inserer dans le post
    Comme tu veux

    Enfait par défaut quant tu ajoute un Onglet, Access l'appel CtlTab1 ou CtlTab2, etc ...
    Quand je voulais dire que c'était le tient, je voulais dire que ce n'était pas la peine d'en rajouter un autre
    Le tient allait très bien mais il faut que les noms soient identiques entre ton control "onglet" et mon code
    @+


    Pensez au tag

  14. #54
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Bonjour, moi il s'appelle BoutonNavigation ... J'ai changé pour CtlTab1~5 mais cela n'a pas l'air de marcher également ... ::arf

    Quand j'essaye de l'insérer (mon fichier Access), il me dit "Fichier non valide" ....

  15. #55
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Laisse le en "BoutonNavigation"

    Et utilise alors le code suivant :
    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 Form_Open(Cancel As Integer)
    Dim I As Integer
    Dim vdDate As Date
        vdDate = Date
        For I = 1 To 5
            While JourChome(vdDate)
                vdDate = vdDate + 1
            Wend
            Controls("Date" & I) = vdDate
            BoutonNavigation.Pages(I - 1).Caption = Format(vdDate, "dddd")
            vdDate = vdDate + 1
        Next
    End Sub
    Pour ton fichier crée une archive avec WinRar ou WinZip et poste la ou envoie la par MP
    @+


    Pensez au tag

  16. #56
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Bonjour,

    Laisse le en "BoutonNavigation"

    Et utilise alors le code suivant :
    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 Form_Open(Cancel As Integer)
    Dim I As Integer
    Dim vdDate As Date
        vdDate = Date
        For I = 1 To 5
            While JourChome(vdDate)
                vdDate = vdDate + 1
            Wend
            Controls("Date" & I) = vdDate
            BoutonNavigation.Pages(I - 1).Caption = Format(vdDate, "dddd")
            vdDate = vdDate + 1
        Next
    End Sub
    Lr problème c'est que le "pas" n'est pas de 1, c'est BoutonNavigation1-4-7-12, j'ai changé pour CtlTab, mais je crois que cest la fonction "Sur ouverture" qui ne va pas ... Ou alors les cases des dates ? Je te joins mon Access Plan de graissage.zip
    Variable "CtlTab" non déclarée

    Encore Merci Didier

    Cordialement

  17. #57
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Merci pour la base

    Effectivement ce n'est pas un objet "onglet" que tu as mis dans ton formulaire.
    Donc normal que cela ne puisse pas marcher

    Voila le code adapté :
    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 Form_Open(Cancel As Integer)
    Dim I As Integer
    Dim vdDate As Date
        vdDate = Date
        For I = 1 To 5
            While JourChome(vdDate)
                vdDate = vdDate + 1
            Wend
            Controls("Date" & I) = vdDate
            Controls("CtlTab" & I).Caption = Format(vdDate, "dddd")
            vdDate = vdDate + 1
        Next
    End Sub
    Attention cependant car comme ce n'est pas un onglet, mais un objet de navigation tu vas devoir créer autant de sous formulaire que d'onglet (cinq)
    Ensuite, tu vas devoir dans chaque formulaire, dans ta requête source metre la condition suivante pour ta date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Formulaire de Navigation]![Date1]
    Et Date2, etc ... selon les formulaires.
    Pense bien aussi pour ces formulaire à interdire la saisie, la suppression, la modification, etc ...

    Dans ton formulaire de navigation principal, ote la source de donnée qui n'est pas nécessaire.
    Et comme les formulaires dépende des valeurs stockées dans tes champs Date1, Date2, etc ...
    Pense a rafraîchir le formulaire avec la syntaxe : "Me.Recalc"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Form_Open(Cancel As Integer)
    Dim I As Integer
    Dim vdDate As Date
        vdDate = Date
        For I = 1 To 5
            While JourChome(vdDate)
                vdDate = vdDate + 1
            Wend
            Controls("Date" & I) = vdDate
            Controls("CtlTab" & I).Caption = Format(vdDate, "dddd")
            vdDate = vdDate + 1
        Next
        Me.Recalc
    End Sub
    Et normalement tu auras bien :
    Nom : Sans titre.png
Affichages : 134
Taille : 18,5 Ko

    Reste plus qu'a ajouter les informations, sur ton point, ta machine et ton type de graisse dans la requête source de tes formulaire pour avoir des tâches plus concrètes

    Regarde cette vidéo pour associer tes formulaire à ton objet navigation : ICI
    @+


    Pensez au tag

  18. #58
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Salut MERCI (je ne peux pas regarder de vidéos depuis mon post, mais je regarderai ca chez moi)

    En ce qui concerne le formulaire "caché" (celui dont l'opérateur ne se servira pas), pour ajouter le le nom de graisse, la machine, il faut faire autant de sous-formulaire ? Et as-tu trouvé une solution à l'affichage #Nom! et #Type! sur la fonction "RechDom" ?

    Vaut-il mieux avoir des onglets ? Ou plutot comme j'ai fais ? Qu'es ce qui est le plmus ergonomique et le plus facil à mettre en oeuvre ?

    Cordialement

  19. #59
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    En ce qui concerne le formulaire "caché" (celui dont l'opérateur ne se servira pas), pour ajouter le le nom de graisse, la machine, il faut faire autant de sous-formulaire ? Et as-tu trouvé une solution à l'affichage #Nom! et #Type! sur la fonction "RechDom" ?
    Non pas de sous formulaire pour ajouter les nom de machine et de graisse
    Mais juste des listes déroulantes pour la saisie.
    Pour le RechDom, la syntaxe marche bien mais le problème c'est que le nom initial du control est le même que celui du critère et donc Access s'y perd et boucle.

    Je vais corriger ton formulaire afin de mettre un nom différent au Control pour que tu aies un exemple de syntaxe qui fonctionne.
    Et je vais faire un autre formulaire identique avec des listes déroulantes, ce qui te permettra de saisir et/ou de modifier ces infos

    Vaut-il mieux avoir des onglets ? Ou plutot comme j'ai fais ? Qu'es ce qui est le plus ergonomique et le plus facil à mettre en oeuvre ?
    Pour ma part je préfère les onglet ce qui me permet de n'avoir qu'un seul sous formulaire. Donc en cas de maintenance ou d'évolution je n'aurais à changer qu'un seul sous formulaire.
    La encore je vais te faire un autre formulaire de navigation pour l'exemple afin que tu aie les deux cas de figures et corriger aussi le tiens en guise d'exemple

    EDIT : En travaillant sur l'Objet de navigation que j'utilisais peu j'ai vu que je pouvais avoir un seul formulaire, donc c'est bien aussi
    Je fais quand même les deux cas,aussi avec l'onglet, afin que tu choisisse ce que tu préfère
    Je fais cela et te poste ta base modifiée quand j'aurais fini
    @+


    Pensez au tag

  20. #60
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Pour ma part je préfère les onglet ce qui me permet de n'avoir qu'un seul sous formulaire. Donc en cas de maintenance ou d'évolution je n'aurais à changer qu'un seul sous formulaire.
    La encore je vais te faire un autre formulaire de navigation pour l'exemple afin que tu aie les deux cas de figures et corriger aussi le tiens en guise d'exemple

    Je fais cela et te poste ta base modifiée quand j'aurais fini
    Merci beaucoup, j'ai simplement créé un formulaire de navigation, je n'ai joué sur aucun autre paramètre donc je devrais sensiblement avoir des "onglets" ?
    En tout cas merci, cette base est un "essai", ensuite je vais pouvoir reproduire quelque chose de propre et de consci en vu d'un application industrielle



    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [XL-2010] Faire un modulo avec une date (Fréquence) sur un calendrier
    Par TTAM54 dans le forum Excel
    Réponses: 2
    Dernier message: 01/04/2015, 08h01
  2. Récupérer une date en cliquant sur le calendrier
    Par christophe_halgand dans le forum MATLAB
    Réponses: 10
    Dernier message: 23/01/2008, 09h10
  3. date du jours ds calendrier
    Par vins111282 dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 16h01
  4. [Dates] Test sur un champ de formulaire
    Par rdams dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2005, 16h03
  5. [Format Date] erreur sur insertion d'une date
    Par philobedo dans le forum SQL
    Réponses: 4
    Dernier message: 14/06/2005, 10h41

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