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. #21
    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 tu es certain que ça ne va pas plus loin, ça va fonctionner.
    Oui ca n'ira pas plus loin

    Alors, j'ai effectué les premiers essais et ca fonctionne.

    Ca s'est arrêté de fonctionner lorsque j'ai voulu faire rentrer les dates de début et de fin, dans une autre table.

    L'erreur est visible en PJ.

    Je peux t'envoyer mon projet plus avancé si tu veux.

    Guillaume.
    Images attachées Images attachées  

  2. #22
    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 genre de message arrive quand exemple dans la clause where il manque une information.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE TaTable.TonChamp = UneVariable
    et que cette variable n'est pas renseignée.

    Si tu ne trouves pas effectivement il faudrait que je vois le projet parce que juste avec le miniature je ne peux voir.

    Bonne journée

  3. #23
    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
    Parfait,

    J'avais ce soucis là qui est résolu, mais tu as oublié de rajouter qu'il fallait une date en état initial ! Car si je supprime tous les enregistrements, ca ne fonctionne pas.

    Merci encore.

    Il ne me reste plus qu'à faire une différence entre DateFin et DateDebut, et une somme de ces différence pour chaque cellule et chaque état.

    Du coup la requête SQL qui va me faire ça est "Datediff" mais est ce qu'il est possible de tout faire directement ? À savoir la somme de la différence entre date fin et date début lorsque état=1 et nomCellule=1 ?


    Guillaume.

  4. #24
    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
    Ou sinon, une idée différente qui me traverse l'esprit, et qui, je pense, peux m'éviter des problèmes :

    Si je rajoute automatiquement un champ "Date calculée" à côté de mes champs "Date Début" et "Date Fin" pour faire la différence directement.
    Ensuite je pense que j'ai juste à faire la somme des "Date calculée" où j'ai une même cellule et un même état.

    Mais est-ce que vous pourriez m'aider pour la syntaxe de la requête SQL (Différence et somme) ?

    Merci d'avance,

    Guillaume.

  5. #25
    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,
    Du coup la requête SQL qui va me faire ça est "Datediff" mais est ce qu'il est possible de tout faire directement ? À savoir la somme de la différence entre date fin et date début lorsque état=1 et nomCellule=1 ?
    La requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TableCelluleEtat.CelluleId, TableCelluleEtat.Etat, Sum(DateDiff("d",[Date_Etat_Debut],[Date_Etat_Fin])) AS Temps
    FROM TableCelluleEtat
    GROUP BY TableCelluleEtat.CelluleId, TableCelluleEtat.Etat
    HAVING (((TableCelluleEtat.CelluleId)=1) AND ((TableCelluleEtat.Etat)=1));
    Ici tu as la différence en jour. Il te reste à adapter avec les bons noms.
    Si je rajoute automatiquement un champ "Date calculée" à côté de mes champs "Date Début" et "Date Fin" pour faire la différence directement.
    Ensuite je pense que j'ai juste à faire la somme des "Date calculée" où j'ai une même cellule et un même état.
    Si je ne trompe pas tu ne peux faire cela avec Access 2003, je crois que les champs calculés dans les tables commence avec 2007 ou 2010. Faudrait que tu vérifies je ne suis pas certain et ça fait longtemps que je n'utilise plus 2003.

    Bonne journée

  6. #26
    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,

    Concernant ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TableCelluleEtat.CelluleId, TableCelluleEtat.Etat, Sum(DateDiff("d",[Date_Etat_Debut],[Date_Etat_Fin])) AS Temps
    FROM TableCelluleEtat
    GROUP BY TableCelluleEtat.CelluleId, TableCelluleEtat.Etat
    HAVING (((TableCelluleEtat.CelluleId)=1) AND ((TableCelluleEtat.Etat)=1));
    Il va me ressortir un résultat du coup ?


    Est-ce qu'il est possible de le mettre sous cette forme pour afficher le résultat dans une zone de texte :
    Private Sub Form_Open(Cancel As Integer)

    Dim strSQL As String

    strSQL = "SELECT Temps.CelluleId, Temps.Etat, Sum(DateDiff (" d ",[Date_Etat_Debut],[Date_Etat_Fin])) AS Temps FROM Temps GROUP BY Temps.CelluleId, Temps.Etat HAVING (((Temps.CelluleId)=1) AND ((Temps.Etat)=1));"

    Me/texte2= ...?

    End Sub
    D'ailleurs, sur ce code-ci, Acces me dit "Erreur, attendu fin d'instruction" sur le "DateDiff ("d",[Date...

    Si je ne trompe pas tu ne peux faire cela avec Access 2003, je crois que les champs calculés dans les tables commence avec 2007 ou 2010. Faudrait que tu vérifies je ne suis pas certain et ça fait longtemps que je n'utilise plus 2003.
    Je ne sais pas, je voulais juste dire, un résultat avec une requête DateDiff et un insert into.

    Guillaume

  7. #27
    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
    Re-bonjour Guillaume,
    Avec l'outil d'Access création de requête, tu fais une requête et au lieu de sélectionner des tables tu cliques sur SQL et tu colles le code que je t'ai donné. Tu auras ainsi ta requête.
    D'ailleurs, sur ce code-ci, Acces me dit "Erreur, attendu fin d'instruction" sur le "DateDiff ("d",[Date...
    Si tu mets ce code en VBA tu dois changer le "d" par 'd'.
    Je ne sais pas, je voulais juste dire, un résultat avec une requête DateDiff et un insert into.
    Oui c'est faisable mais pas bon. Supposons que tu changes une date et que le code plante pour n'importe quelle raison, tu ne mettrais pas à jour le champ calculé et tu aurais des données fausses.

  8. #28
    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
    Oupss,
    J'oubliais celle ci:
    Est-ce qu'il est possible de le mettre sous cette forme pour afficher le résultat dans une zone de texte :
    Non pas comme ça. Il faudrait que tu récupères un enregistrement basé sur cette requête et que tu mettes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Texte2 = rst("NomDuChampDeEnregistrement")
    En supposant que tu as déclaré ta variable Dim rst As DAO.RecorSet.

  9. #29
    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
    Est-il possible de récupérer simplement un enregistrement basé sur une table ? Je ne me suis pas familiarisé avec les requêtes !

    Actuellement, j'ai fait ce que tu m'as dit, à savoir mettre le code en SQL dans la requête mais je suis un peu perdu sur la suite.

    Guillaume

  10. #30
    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-il possible de récupérer simplement un enregistrement basé sur une table ?
    Pas réellement si tu veux un calcul. Tu pourrais cependant mettre la "Source" de ton formulaire basé sur cette requête ou une combinaison de cette requête et une table cela dépend de l'information que tu dois afficher dans ton formulaire.
    Actuellement, j'ai fait ce que tu m'as dit, à savoir mettre le code en SQL dans la requête mais je suis un peu perdu sur la suite.
    Si tu utilises l'outil "Création de requête" d'Access et que tu copies le code tu auras ta requête. Après naturellement il va falloir que tu l'adaptes pour tes besoins.
    Je ne me suis pas familiarisé avec les requêtes !
    Je crois que tu devras le faire si tu veux être capable d'afficher des cumuls ou autres données semblables. Il y a de très bons tutoriels ici: http://access.developpez.com/cours/?...access#requete
    dont celui-ci pour débuter: http://jeannot45.developpez.com/arti...tionrequetes1/

    Bonne journée

  11. #31
    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,

    Merci pour les liens.

    Citation Envoyé par Robert1957 Voir le message
    Tu pourrais cependant mettre la "Source" de ton formulaire basé sur cette requête ou une combinaison de cette requête et une table cela dépend de l'information que tu dois afficher dans ton formulaire.Bonne journée
    En faite, je pense créer un formulaire pour chaque cellule avec à l'intérieur de chacun :
    Une étiquette : "Temps total en fonctionnement" et une zone de texte affichant le résultat.
    Idem avec le "Temps Total en Anomalie Bord","Temps Total en Anomalie Sol","Temps Total cellule vide","Temps Total Cellule en maintenance".

    Ou sinon, à la place d'étiquettes, un bouton qui, lors du clic, ouvre une message box (VbOkOnly) avec le temps passé dans l'état.


    Au faite, qu'entendais-tu, dans ton post, le #25, par :
    Ici tu as la différence en jour. Il te reste à adapter avec les bons noms.
    Merci,

    Guillaume

  12. #32
    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,
    La première valeur de DateDiff peut s'exprimer en jours, mois, année selon ce que tu veux va faire le calcul en joursva faire le calcul en mois etc... Si tu mets ton curseur sur DateDiff et que tu fais la touche F-1 tu vas voir, avec l'aide d'Access, toutes les combinaisons possibles.

    Bonne journée

  13. #33
    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,

    D'accord c'est ce que tu entendais par "adapter avec les bons noms".
    J'aurais deux questions :
    - Est-il possible d'afficher le résultat en jour, mois, année, ou bien c'est une seule valeur que l'on peut attribuer à DateDiff ?

    - Comment puis-je utiliser ta requête pour qu'elle me fasse apparaître une msgbox contenant le temps total pour un Celluleid =1 et un état =1, par exemple ?

    Merci.

    Guillaume

  14. #34
    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-il possible d'afficher le résultat en jour, mois, année, ou bien c'est une seule valeur que l'on peut attribuer à DateDiff ?
    Une seule valeur. Tu peux regarder dans l'aide d'Access les possibilités.
    - Comment puis-je utiliser ta requête pour qu'elle me fasse apparaître une msgbox contenant le temps total pour un Celluleid =1 et un état =1, par exemple ?
    En récupérant la valeur d'un recorset et l'insérant dans un msgbox. Le code suivant te donnerait le nombre de semaines et de jours sur l’événement clic.
    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 Commande12_Click()
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strSQL As String
     
    strSQL = "SELECT TableCelluleEtat.CelluleId, TableCelluleEtat.Etat, Sum(DateDiff('d',[Date_Etat_Debut],[Date_Etat_Fin])) AS Temps " _
    & "FROM TableCelluleEtat GROUP BY TableCelluleEtat.CelluleId, TableCelluleEtat.Etat HAVING (((TableCelluleEtat.CelluleId)=1) AND ((TableCelluleEtat.Etat)=1));"
    Set db = CurrentDb
    Set rst = db.OpenRecordset(strSQL)
    MsgBox "La période est égale à ; " & rst("Temps") \ 7 & " semaines et " & rst("Temps") Mod 7 & "jour(s)", vbInformation
    rst.Close
    Set rst = Nothing
    Set db = Nothing
    End Sub

  15. #35
    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,

    Très bien, je vais faire mes essais aujourd'hui. Merci encore.

    J'ai une question anodine :

    Le fait de remplir continuellement un ficher access en rajoutant toujours de nouveaux enregistrements, est ce qu'à un moment ce fichier grossira en taille jusqu'à devenir inexploitable ?

    Guillaume

  16. #36
    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,
    Ça dépend toujours de la structure de tes tables mais j'ai des applications avec plus de 1 millions de records et elles fonctionnent très bien. Leurs tailles sur le disque est de 450 à 550 meg. Access accepte jusqu'à 2G.
    Bonne journée

  17. #37
    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,

    Merci, ca fonctionne très bien.


    Je vais mettre mon résolu maintenant

    Guillaume

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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