[Access] affich planning ss forme de tableau

zenon Messages postés 729 Statut Membre -  
 sweety_97 -
Bonsoir,

Je ne suis pas certain de poster dans la section adéquate...

J'aimerais afficher un planning de réservations sous forme de tableau affichant les périodes libres et occupées.

Je dispose d'une table fournissant les date et heure et liée évidemment aux différents "protagonistes".
Je peux évidemment vérifier si la période est libre avant de confirmer la réservation mais j'aimerais que l'utilisateur puisse avoir un aperçu des périodes disponibles.
Je sais que tous les agenda le permettent mais je souhaite rester ss access pour garder le lien avec les autres données.

Une solution tte faite cô un contrôle activeX existerait-elle?
Comment faire? je ne sais pas me servir des tableaux ss access...

Merci pour votre aide.

19 réponses

  1. Utilisateur anonyme
     
    re:

    si tu veux mon avis, une requête est mille fois mieux qu'une nouvelle table ssi les données sont déjà présentes dans la(les) table(s) existante(s).

    Quand au problème de donnée vide, je ne vois pas de problème puisque le formulaire affiche ce qui est paramètré dans les requêtes, ce sont les objets ( contenants de donnée ) qui sont sur le formulaire.

    L'encapsulation des données nous permets d'apercevoir une structure naturel qui oriente la méthodologie du travail, c'est de la grande théorie, mais très importante.

    En supposant que toutes l'information est déjà présente.

    Utilise un formulaire pour piloter la fabrication. Postulat : Un formulaire pointe toujours sur une requête SQL qui elle pointe sur une table ou une requête SQL.

    Si j'ai bien compris tu désire un évènement client pour visualiser "le calendrier des activités en cours", terrain libre ou pas.

    Délimite dans le formulaire un "calendrier", comme un tic-tac-toe mais en plus grand selon tes besoins, conserve un espace "bouton", un espace "libellé", etc...

    Ensuite, pour chaque case, établie une mini-requête. Étudie bien cette rêquête de façon à ne changer qu'une seule variable et parcourrir ainsi toutes les cases du "calendrier", pour commencer de simple text box agrandi fera l'affaire, si tu est à l'aise avec la manipulation d'un objet "grid" il y a pleins de références supplémentaires que tu peux charger.

    Ensuite sur un évènement bouton tu contruit une petite routine du style :

    Private Sub Liste_Catégorie_AfterUpdate() 
    
      Dim Chaine As String ' Variable de la chaine de caractères 
      Dim Critere As String ' Variable contenant la string "SQL" 
      Dim Indice As String ' Variable du critère de recherche 
      Dim Boucle As Long
    
      Indice = Forms![Formulaire Tableau].[MaListeDeroulante] 
      ' Création d'une chaine de caractères 
      Chaine = "Select * from [MaTable] where [MonChamp] = " 
      ' Création de la string "SQL" 
      Critere = Chaine & """" & Indice & """" 
    
      For Boucle = 1 to 16
    
        ' Appel fonction et changement de la requête 
        If (ChangeRequeteDef("RequeteSpecifique" & Boucle, Critere)) Then 
          ' Si réussite, ouvrir formulaire tableau 
          ' ici, je crois qu'un simple refresh du formulaire fera l'affaire,
          ' à  la fin du balayage de chaque requête si tu n'as pu l'adapter.
          ' Si Resultat <> Vide Alors
          '   CetteTextBox.Value = Enregistrementdelarequête.Champ
          ' Sinon
          '   CetteTextBox.Value = ""
          ' Fin Si 
        End If 
      Next Boucle
      Me.Refresh
    
    End Sub 
    'Pas tester !
    


    attention, je ne prétends pas que c'est la meilleur, c'est une suggestion !

    Lupin
    3
  2. Utilisateur anonyme
     
    Bonjour,

    un formulaire type tableau constitué d'une requête modifiable par VBA est tout indiqué ! Voici une suggestion !

    Créer un formulaire à l'aide de l'assistant de type tableau qui pointe sur une requête global de la table. Paramètrer au besoin la requête pour obtenir le visuel des champs sur tous les enregistrements.

    Paramètrer celle-ci pour ne pointé que sur un critère de recherche qui formerait un groupe basé sur les priorités d'affichage. Une fois le résultat tableau souhaité, voici le code VBA pour modifier cette requête :

    Private Sub Liste_Catégorie_AfterUpdate()

    Dim Chaine As String ' Variable de la chaine de caractères
    Dim Critere As String ' Variable contenant la string "SQL"
    Dim Indice As String ' Variable du critère de recherche

    ' Affectation dans variable
    Indice = Forms![Formulaire Tableau].[MaListeDeroulante]
    ' Création d'une chaine de caractères
    Chaine = "Select * from [MaTable] where [MonChamp] = "
    ' Création de la string "SQL"
    Critere = Chaine & """" & Indice & """"

    ' Appel fonction et changement de la requête
    If (ChangeRequeteDef("RequeteSpecifique", Critere)) Then
    ' Si réussite, ouvrir formulaire tableau
    DoCmd.OpenForm "Formulaire_Tableau", acNormal, "", "[ChampsDeLaRequêteEnRecherche]", , acNormal
    End If

    End Sub

    ' Et la fonction

    Public Function ChangeRequeteDef( _
    ChaineRequete As String, ChaineSQL As String) As Boolean

    Dim Definition As QueryDef

    If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
    ChangeRequeteDef = False
    Else
    Set Definition = CurrentDb.QueryDefs(ChaineRequete)
    Definition.SQL = ChaineSQL
    Definition.Close
    RefreshDatabaseWindow
    ChangeRequeteDef = True
    End If

    End Function
    </code>

    cela te convient-il ?

    Lupin
    1
  3. mihitch
     
    Salut Ego, salut Lupin.A

    Merci pour vos réponses,
    ....
    il manquais un mot
    1
  4. Utilisateur anonyme
     
    Re:

    1. Créé une requéte type pour un état souhaité !
    2. Créé un premier modèle type d'un état souhaité !
    3. Créé les requêtes/tables de l'état en dynamique avec VBA

    C'est exactement comme l'exemple du début de ce fil, plutôt
    que de créer 300 requétes, une suffit puisqu'elle est modifié
    de façon dynamique :-) Avant de pouvoir la modifier j'ai du
    la créé en manuel une première fois.

    Présentement, dans ton exemple :

    ___________ Jour_1__________Jour_2_____________Jour_3
    Action_1___ Pierre___________ Pierre ___________________
    Action_2____Paul _____________________________________
    Action_3 ____________________ Paul______________ Paul___
    Action_4______________________________________ Jaque _

    je vois 3 objets :

    Jour(x)
    Action(y)
    Personne(z)

    structuré ainsi :

    Personne / Jour
    Personne / Action ( Personne / Évènement )

    Alors je procederais comme suit en créant
    un état avec genre plein de cellule.

    À partir d'un formulaire, créer une table et une
    requête dynamique pour produire l'état souhaité.

    Vois-tu un peu plus ou je veux en venir ?

    Lupin
    1
    1. bbbbb
       
      coment construire un emploi du temps pour ensignement moyen
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sweety_97
     
    j'aimerai faire un planning de deroulement d'une preparation d'une reunion dans une feuille simple,
    mais le probleme je vois pas comment je peut le presenté
    est ce que quelqun poura m'aider
    merci d'avance
    1
  7. zenon Messages postés 729 Statut Membre 180
     
    Merci pour ta réponse.

    Mon problème est surtout que je ne vois pas comment construire le tableau et surtout comment lui faire afficher les lignes vides.

    J'ai une table qui liste les jours et heure de début de réservation ainsi que la durée mais aucune donnée ne pointe vers les périodes libres... En y réfléchissant, je pense que c'est là le problème...

    Je vais essayer en créant une nouvelle table pour commencer.
    0
  8. zenon Messages postés 729 Statut Membre 180
     
    Désolé de tarder à te répondre, j'ai été (je suis) débordé de boulot

    Je vois l'idée, reste à trouver le temps de la mettre en oeuvre...

    merci pour ton aide!
    0
  9. mcarluec Messages postés 3 Statut Membre
     
    Salut
    J'essaye de réaliser un planning, moi aussi mais je ne comprends pas très bien comment attribuer une mini-requête à un contrôle
    Faut dire que je voudrais construire les lignes de mon calendrier avec les données d'une table (les noms des personnes concernées) et en face, les informations qui leur correspondent pour chaque jour (une autre table liée)
    si access m'autorisait des sousformulaires en mode continue ce serait déjà fini... mais ce n'est pas le cas...
    merci de m'éclairer.
    0
  10. Utilisateur anonyme
     
    Bonjour,

    Procédons par étape !

    1.) Créer une simple requête avec 1 critère

    ex.:
    Posons une simple table avec 3 champs.

    Nom
    Prénom
    Téléphone

    supposons que je crée une requête pour trouver le nom de "Lupin"

    ça donnera quelque chose comme :

    SELECT tab_Liste.*, tab_Liste.Nom
    FROM tab_Liste
    WHERE (((tab_Liste.Nom)="Lupin"));

    donc, ici nous voulons pouvoir modifier la requête par l'évènement d'un contrôle, alors on place un contrôle sur un formulaire par exemple une liste déroulante qui pointera sur un autre requête.

    cette liste déroulante doit avoir la liste de tous les noms de la table,
    donc la source sera une requete du genre :

    SELECT tab_Liste.Nom
    FROM tab_Liste;

    maintenant, sur l'évènement [ Après mise è jour ], tu lance le générateur de code :

    Private Sub ListeDeNoms_AfterUpdate()
    
        Dim Chaine As String
        Dim Critere As String
        Dim varAcronyme As String
            
        If (Forms![frm_Liste].[ListeDeNoms] <> "") Then
            
            ' Ici, il faut reconstruire le requête avec la valeur
            ' du contrôle
            'SELECT tab_Liste.*, tab_Liste.Nom
            'FROM tab_Liste
            'WHERE (((tab_Liste.Nom)="Lupin"));
            
            varAcronyme = Forms![frm_Liste].[ListeDeNoms]
            Chaine = "Select tab_Liste.*,tab_Liste.Nom from [tab_Liste] where (((tab_Liste.Nom)="
            Critere = Chaine & """" & varAcronyme & """"
        
            ' Et ici on utilise une petite fonction pour modifier la requête
            If (ChangeRequeteDef("req_Liste", Critere)) Then
                DoCmd.OpenForm "frm_Liste", acNormal, "", "[ListeDeNoms]", , acNormal
            End If
        End If
        
    End Sub
    


    et voici la fonction qui modifie la requête :

    Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
        
        Dim Definition As Variant
        
        If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
            ChangeRequeteDef = False
        Else
            Set Definition = CurrentDb.QueryDefs(ChaineRequete)
            Definition.SQL = ChaineSQL
            Definition.Close
            RefreshDatabaseWindow
            ChangeRequeteDef = True
        End If
        
    End Function
    


    bon, je sais que ça ne semble pas évident mais ça fonctionne très bien.

    @+
    Lupin
    0
  11. mcarluec Messages postés 3 Statut Membre
     
    Bon, ya plus qu'à essayer...

    Merci
    0
  12. bebenageur
     
    HELP

    j'ai besoin d' aide pour crée un emplois du temps pour mes agents ou il y aurait une recap des taches et le temps de la tache le jour et une fiche induviduel qui soit relié a cette a cette recap comment faire merciiii beaucoup
    0
  13. Mitch
     
    Salut

    je cherche une solution pour afficher mes données sous forme de planning.
    comme un diagramme de Gantt.
    sous access bien sur.

    existe-il un Activix pour cela?
    peut on le télécharger?

    Merci pour le coup de pousse

    j'ai bien sur tester les requette croisée dinamique. mais dans un état c'est plus du tout dinamique...

    Mitch
    0
  14. Utilisateur anonyme
     
    Salut,

    je ne puis que vous apporter une solution VBA sous access, lorsque j'ai entamé
    ce dernier j'ai sauté directement des "macros access" au "macros vba".
    J'ai apprit avec le bouquin :
    Beginning Access 97 VBA Programming ( Robert Smith and David Sussman )

    Pour créer votre état vous devez avoir la structure :
    TABLE(S) <- Requête(s) <- Formulaire(s) <- État(s)

    Je ne connais pas Gantt, plus de détails serait souhaité !

    Avez-vous 1,2, ... ou plus de table(s) ?
    Avez-vous 1,2, ... ou plus de requête(s) ?
    Avez-vous 1,2 , ... ou plus de formulaire(s) ?
    Avez-vous 1,2, ... ou plus de lien(s) ?

    Un activeX ? Tout se fait sous VBA !

    Lupin
    0
  15. ego
     
    salut
    j avais dans le temps composé un tableau avec une gestion de rdv, etiquettes etc..
    j ai resolu le pb des jours (ce que tu cherches) encréant 1 sub contenant une fonction backcolor rouge ou vert.
    ce sub etait avait comme critère une variable.
    chaque case du planning avait sa variable distincte pour selectionner au jour par jour et en modifier la couleur
    puis une raz (tout én vert) par un do while
    par contre, si tu veux ajouter 1 nom dans tes cases, il te faut passer par une requete ajout qui acceptes tres bien les variables.
    bonne suite
    0
  16. mihitch
     
    Salut Ego, salut Lupin.A

    pour vos réponse,
    Je peu me débrouillée pour avoir toute les données sur une seule table. (ça j'en fait mon affaire.)

    pour la suit il me faut imprimer le tableau suivant :

    sur la colonne de gauche : des taches à réaliser.
    sur le première ligne : des dates.
    à l’intersection des lignes et des colonnes : des noms de une ou plusieurs personnes.

    il faut bien sur que le nombre de ligne soit variable.
    et que le nombre de date soit variable (aussi).

    ce qu'il faut c'est pouvoir le sortir sur un état.

    PS :
    une date : une ou plusieurs actions
    une action : une ou plusieurs personnes

    et bien sur une personne sur plusieurs date et sur plusieurs action

    PS le bonjour aux Briguades du T.
    0
  17. Utilisateur anonyme
     
    Bonjour,

    Alors voici comment je procéderais, notez qu'il y en a d'autres !
    Je recommande de travailler avec des mots sans accens !
    Les informations en main :

    Creation d'un agenda

    Donc des evenements ayants des proprietes

    Evenement / Heure debut
    Evenement / Heure fin
    Evenement / Date
    Evenement / Lieu
    Evenement / Contacts

    Creation d'une table

    TabEvenements

    Creation d'une requete globale,
    d'une retuete annuel, d'une requete mensuel,
    d'une requete hebdomadaire, d'une requete quotidienne,
    d'une requete pour une heure et une pour 1 evenements

    RqsGlobale
    RqsAnnuel
    RqsMensuel
    RqsHebdo
    RqsJour
    RqsHeure
    RqsEvenement

    Creation d'un formulaire qui servira de previsualisation
    a l'etet et la modofication des parametres de tri.

    Creation des etats souhaites

    EtsAnnuel
    EtsMensuel
    EtsHebdo
    EtsJour
    EtsHeure
    EtsEvenement

    Si cette structure est appliqué, ensuite il ne s'agit
    que d'attacher les objets ensembles pour modifier
    les requêtes de base créé au départ.

    Sur le formulaire, on insere quelques contrôles
    pour effectuer la sélection, exemple un controle
    qui selectionne la requete et un controle qui
    selectionne le groupe d'evenement(s).

    Est-ce assez clair ?

    Lupin
    0
  18. Utilisateur anonyme
     
    re:

    ah oui, au cas ou !

    Le formulaire pointe sur la requete globale
    qui pointe sur la table, souviens toi de la
    structure.

    TAB-REQ-FOR-ETA

    lUPIN
    0
  19. Mihitch
     
    Merci lupin,

    j'ai créé la table agenda et la table TabEvenements et un table personne

    et il est facile de crée un requête pour afficher un état du style :

    Jour_1
    Action_1 Pierre
    Action_2 Paul

    Jour_2
    Action_1 Pierre
    Action_3 Paul

    Jour_3
    Action_3 Paul
    Action_4 Jaque

    mais c'est pas très convivial.

    Le Défit

    c'est d'afficher:
    *************************************
    * Jour_1 Jour_2 Jour_3 *
    * Action_1 Pierre Pierre *
    * Action_2 Paul *
    * Action_3 Paul Paul *
    * Action_4 Jaque *
    ************************************

    et il faut que le nombre d'action et de jour soit variable
    il faut pouvoir imprimer l'état sans avoir à le retoucher (modifier)

    la subtilité du problème n'est pas dans la récupération des données, mais dans dans la mise en forme et le dynamisme de l'affichage.....
    0
  20. Mihitch
     
    Pour la mise en page, c'est plustôt ça:

    ___________ Jour_1__________Jour_2_____________Jour_3
    Action_1___ Pierre___________ Pierre ___________________
    Action_2____Paul _____________________________________
    Action_3 ____________________ Paul______________ Paul___
    Action_4______________________________________ Jaque _
    0