IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Stocker des valeurs avant de les écraser


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut Stocker des valeurs avant de les écraser
    Bonjour,

    Actuellement, j'ai une table qui me montre l'état de bâtiments.
    J'appelle mes batîments des cellules et je fais ceci :

    Un CelluleId par cellule.

    C'est à dire : J'ai 10 cellules, donc 10 cellulesId différentes. Et grâce à mon formulaire, je choisis l'état de ma cellule (J'update quand je clic sur le bouton "En fonctionnement" par exemple, et j'update l'heure du clic).

    Cette méthode fonctionne très bien, mais du coup, je n'ai aucun historique, car ma clé primaire, à savoir mon CelluleId à un numéro pour un bâtiment.

    J'ai 5 états différents par cellule.

    J'aimerais juste stocker ma valeur avant de l'écraser. Du coup ca nécessite une nouvelle table pour le stockage de valeurs je suppose, mais je ne vois pas comment m'y prendre.
    Je pense que le plus simple serait de faire comme dans le fichier excel que j'ai joint à mon message, mais ca impliquerait de faire une table pour chaque cellule, donc 10 tables supplémentaires !

    Avez-vous d'autres propositions ?


    Merci d'avance,

    Guillaume.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillome29,
    Sans avoir plus de détails sur ce que tu veux exactement faire je te dirais ta table Cellule avec une table CelluleEtat relation un à plusieurs comme sur la figure. Et à chaque changement d'état tu inscrit celui-ci dans la table CelluleEtat. Si tu fais une recherche ici il y a de bon tuto pour la modélisation.
    Bonne journée
    Images attachées Images attachées  

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonsoir Robert,
    Merci pour cette réponse rapide.
    Je souhaite simplement faire un historique des états (et donc de la durée dans un état quelconque) pour chaque cellule.

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 668
    Points : 43 692
    Points
    43 692
    Par défaut historique
    Si tu pars sur l'idée de relation à plusieurs,tu stockes la date de début d'état puis la date de fin ( la fin correspondant au changement d'état ) par différence entre les 2 dates,tu obtiens le temps dans l'état.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Je ne vois pas comment enregistrer la date de fin si je change d'état.
    Car imaginons que ma date de début est lorsque je suis à l'état 3, ma date de fin peut être lorsque je vais à l'état 1, ou par exemple lorsque je vais à l'état 2.

    En faite, il faudrait que je fasse un nouvel enregistrement pour chaque changement d'état je pense ?
    Et ça, je n'arrive pas à l'imaginer.

    Actuellement j'enregistre la date d'un état au clic sur le bouton "état".
    Je vais reformuler ma question. Est-il possible d'avoir une vue d'ensemble de tous les états fait par la Cellule 1 par exemple ?
    Du style :
    Cellule 1 :
    État 1 - 15h
    État 5 - 16h50
    État 3 - 18h02

    Actuellement je prends toutes ses données séparément. Le problème intervient juste lorsque je souhaite regrouper tous ses éléments

    Si vous avez une solution à proposer, je suis preneur.

    Guillaume

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 77
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    la réponse est dans ta question :
    En faite, il faudrait que je fasse un nouvel enregistrement pour chaque changement d'état je pense ?
    Et ça, je n'arrive pas à l'imaginer.
    en regardant ton fichier excel tu travailles en ligne alors qu'il te faudrait travailler en colonne

    idCellule | nomEtat | heure changement d’état
    idCellule -> etat1 -> heure
    idCellule -> etat2 -> heure
    idCellule -> etat3 -> heure

    dans mon exemple :
    Etat1 est le début.
    Etat2 est un état intermédiaire soit la fin de l'état1 et le début du 2.
    Etat3 est la fin de tous les états

    j’espère avoir été clair et avoir bien compris ce que tu demandais.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Ah oui je vois ce que tu veux dire. Je vais essayer de faire quelque chose et je reviendrais ici.

    Merci

  8. #8
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillome29,
    Il y a plusieurs manières de faire. Une manière simple à mon avis est la suivante: Une table avec IdCellule, État, date-heure début, date-heure fin. Un sous-formulaire en mode continu lié par IdCellule à ton formulaire cellule. Tu choisis un état puis tu inscrits une date de début. Quand tu inscrits une date de fin, tu crée un nouveau record avec la date du début de ce nouveau record = à la date de fin du record précédent et tu inscrits ton nouvel état. Mais ce n'est pas la seule manière de fonctionner. C'est un choix...
    Bonne journée

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Si je comprends bien, il me faudrait néanmoins un champ supplémentaire pour cette nouvelle table avant IdCellule, État, date-heure début et date-heure fin. Il faut que je crée une clé primaire tout de même ?

    Il faut que je crée un nouvel enregistrement N dans lequel j'ajoute une date début. Et en même temps, il faut que j'update l'enregistrement N-1 pour lui mettre la date fin (Identique à la date début de l'enregistrement N) et uniquement si l'iDCellule des enregistrements N et N-1 sont identiques !

    En SQL, il faut que j'utilise la commande UPDATE et SET c'est ca ?
    Et je ne vois pas comment je peux, de façon automatique, trouver l'enregistrement qu'il faut (Mon enregistrement N et N-1)..


    Guillaume.

  10. #10
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillome29,
    Une photo vaut mille mots... Je t'ai fait un exemple
    Bonne journée
    Fichiers attachés Fichiers attachés

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour Robert,

    Je n'arrive pas à ouvrir ta pièce jointe, je suis sous Access 2003.

    Guillaume

  12. #12
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour guillome29,
    Voici le format 2003.
    Je regarde le pour l'autre aujourd'hui.
    Bonne journée
    Fichiers attachés Fichiers attachés

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Je vois ce que tu as fait.
    J'ai un peu de mal à comprendre le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim strSQL As String
        strSQL = "INSERT INTO TableCelluleEtat ([Date_Etat_Debut], [CelluleId]) VALUES (#" & Me.Date_Etat_Fin & "#, " & Me.CelluleId & " );"
        If Not IsNull(Me.Date_Etat_Debut) And Not IsNull(Me.Date_Etat_Fin) Then
            DoCmd.RunSQL (strSQL)
            Me.Requery
        End If
    Peux-tu me le commenter ?

    Ce code fonctionne aussi si le CelluleId change ? Ne va-t-il pas me mettre une date de fin pour un celluleId =1 alors que je modifie le CelluleId = 2 ?

    Guillaume

  14. #14
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillaume,
    Ce code fonctionne aussi si le CelluleId change ? Ne va-t-il pas me mettre une date de fin pour un celluleId =1 alors que je modifie le CelluleId = 2 ?
    Non parce qu'il prend le celluId sur la ligne ou tu te trouves.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'Déclaration de la variable
    Dim strSQL As String
     
    'Construction de la requête ajout basé sur le CelluleID et la date de fin de la ligne qui devient la date de début de l'autre ligne
    strSQL = "INSERT INTO TableCelluleEtat ([Date_Etat_Debut], [CelluleId]) VALUES (#" & Me.Date_Etat_Fin & "#, " & Me.CelluleId & " );" 
     
    'Vérification si les 2 dates sont saisies. Si elle sont saisies c'est qu'il faut créer une autre ligne.
     If Not IsNull(Me.Date_Etat_Debut) And Not IsNull(Me.Date_Etat_Fin) Then 
            'Exécution de la requête
            DoCmd.RunSQL (strSQL)  
            'Rafraichissement du formulaire
            Me.Requery
        End If
    Bonne journée

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par Robert1957 Voir le message
    Bonjour Guillaume,
    Non parce qu'il prend le celluId sur la ligne ou tu te trouves.
    Je me demande alors si ceci correspond à mon projet réellement alors. Je te propose de regarder la pièce jointe afin de savoir si c'est compatible avec mon projet actuel.

    J'ai U1 pour CelluleId = 1
    U2 pour CelluleId = 2 etc...
    Et chaque bouton correspondant à un changement d'état (en fonctionnement pour Etat = 1...)

    Est ce que, avec le code que tu m'as proposé, si je clique sur en fonctionnement de U2, est ce que ca va pas me mettre l'état de U1 en fini (DateDe fin), Car c'est pas ce que je recherche.
    Je veux vraiment que la date de début et la date de fin soit dépendant de la cellule dans laquelle je me trouve (U1, U2...)

    Merci d'avance,

    Guillaume.
    Images attachées Images attachées  

  16. #16
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillaume,

    Est-ce que tu as fait des test avec la version que je t'ai posté. Il n'y a pas de problème et l'enregistrement se fait pour la bonne cellule.

    Pour le formulaire que tu as mis en miniature, c'est joli mais je ne peux pas dire grand chose je ne vois pas la conception et c'est de là que tout provient.

    L'important pour toi, et c'est facile à réaliser, c'est qu'au moment ou tu inscrits une date de fin pour une cellule forcément tu es dans la bonne cellule (table) et donc tu n'as qu'à récupérer le Id de cette ligne et en créer une autre (ligne dans la table) avec le même Id et une date de début = à la date de fin que tu viens de saisir.

    Bonne journée

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Je comprends bien le principe, maintenant, ce que je demande, c'est :
    Est ce que je peux attribuer ton code à l'événement Clic de mes boutons.

    A titre d'exemple, Si je clique sur le bouton "En fonctionnement" qui est face à U1, j'ai une commande insert "into... Where CelluleId=1, Etat = 1....".

    Et pour te répondre, non je n'ai pas réussi à tester, j'ai du mal à comprendre comment fonctionne tes formulaires, je suis perdu quand il n'y a pas de boutons et tout ca

    Donc, en gros, je souhaite mettre ton code, et copier coller ceci dans chaque événement Clic bouton (En modifiant le celluleId et l'état en fonction du bouton). C'est tout


    Guillaume.

  18. #18
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Guillaume,

    C'est certain que tu peux te servir de mon code. Ce qui est difficile pour moi c'est de te dire à quel endroit le mettre, sur quel événement parce que je n'ai pas toutes les données. Une chose qui est certaine, quand tu inscrits la date de fin dans ton formulaire tu es sur le bon enregistrement pour récupérer le ID de la cellule.

    J'espère que ça répond à ton questionnement.

  19. #19
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour guillome29,
    Je te joint un exemple dans ta bd. J'ai du modifier le nom de certains champs pour que mon exemple fonctionne.

    Les 2 boutons qui fonctionnent sont "Anomalie bord bloquant" et "Anomalie sol". Tu pourras prendre exemple sur ce que j'ai fait pour les autres cas.

    En faisant des test tu vas voir comment l'insertion se fait dans la table Cellule.

    J'ai lu ton autre discussion et je ne sais pas ou tu es rendu exactement dans ton développement mais la structure de tes tables ne permettra pas de faire évoluer beaucoup ton application. Si tu es certain que ça ne va pas plus loin, ça va fonctionner.

    bonne journée
    Fichiers attachés Fichiers attachés

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 91
    Points : 60
    Points
    60
    Par défaut
    Bonjour Robert,

    Actuellement mon application est bien plus aboutie que la version que tu as reçu

    Je teste tout ça tout à l'heure. Merci encore !

    Guillaume

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/12/2007, 14h32
  2. [VBA-O] Stocker des valeurs de variables
    Par Elstak dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 16/08/2006, 08h38
  3. vb6: Stocker des valeurs récupérés dans un TextBox sous excel
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 32
    Dernier message: 19/07/2006, 16h12
  4. Meilleur type table pour stocker des valeurs numérique
    Par vodevil dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/04/2006, 20h42
  5. stocker des valeurs de type différent
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 28/11/2005, 09h36

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