[Access] affich planning ss forme de tableau

Fermé
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 - 10 mai 2006 à 17:51
 sweety_97 - 18 déc. 2009 à 17:19
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.
A voir également:

19 réponses

Utilisateur anonyme
11 mai 2006 à 23:23
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
Utilisateur anonyme
11 mai 2006 à 00:44
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
Salut Ego, salut Lupin.A

Merci pour vos réponses,
....
il manquais un mot
1
Utilisateur anonyme
8 janv. 2008 à 00:22
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
coment construire un emploi du temps pour ensignement moyen
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
11 mai 2006 à 09:41
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
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
17 mai 2006 à 22:40
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
mcarluec Messages postés 3 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 3 septembre 2006
30 août 2006 à 09:55
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
Utilisateur anonyme
31 août 2006 à 14:51
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
mcarluec Messages postés 3 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 3 septembre 2006
3 sept. 2006 à 17:58
Bon, ya plus qu'à essayer...

Merci
0
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
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
Utilisateur anonyme
28 déc. 2007 à 01:51
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
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
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
Utilisateur anonyme
6 janv. 2008 à 21:14
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
Utilisateur anonyme
6 janv. 2008 à 21:18
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
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
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