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

VBA Access Discussion :

Convertir les données d'un champ d'une table de numérique en heure abrégée


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut Convertir les données d'un champ d'une table de numérique en heure abrégée
    Bonjour tout le monde ça y est c'est réouvert ouf sauvé.

    Depuis quelques mois je saisie des production dans une base que j'ai créée grâce à votre aide que j'ai si souvent demandée.

    je saisie des cadences avec un champ Production (en numérique) et un champ Nbre de minutes (en numérique)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Production]/[Nbre Minutes]*60
    Pour avoir dans mon champ Cadence le résultat par heure.

    J'utilisais un convertisseur d'heure en minutes pour que ce ne soit pas trop contraignant pour les utilisateurs qui s'ouvre dés que je clique sur le champ en nombre de minutes et sur l'evenement entrée.

    Mais j'ai des problèmes avec ce convertisseur (d'ouverture intempestives)

    Je me suis dis ça doit être possible de trouver plus simple qu'un convertiseur

    Alors un cherchant et en étant aidé par ce forum j'ai trouvé le solution

    Il fallait juste changer le format de mon champ minutes en Heure abrégée mais surtout faire cette opération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Production]/[Nbre Minutes]/24
    Je ne sais pas pourquoi je n'y ai pas pensé avant mais à la création de la base surement que je n'avait pas /24 donc j'ai eu un mauvais résultat et je me suis pas trop attardé dessus.


    Et là c'est le drame

    avec le changement de format maintenant dans ma table le champ Nbre de minutes et renseigné par 00:00 dans tout ce que j'ai saisie avant le changement.

    Je ne me voit pas changer à la main et convertir toutes les minutes en heures à chaque enregistrement.

    Comment puis je tout convertir dans la table.

    C'est à dire reprendre ma table avant le chamgement de format c'est à dire le champ Nbre Minutes en numérique et convertir ce champ en heure abrégée par une opération comme une requête ajout qui le ferai presque instantanément pour tous les enregistrements.

    Comme ça à l'extraction des données j'ai le format exemple (01:30) au lieu de 90 dans tout ce que j'ai sasie précédemment.

    Mais là je ne suis pas assez bon sur access pour trouver la solution.
    Merci de vos réponses et de votre aide.

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Salut

    Il te faut créer une requête "Mise à jour" et utiliser une fonction du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HeuresMinutes: SérieHeure(Ent([MesMinutes]/60);[MesMinutes]-(Ent([MesMinutes]/60)*60);0)

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Bonjour,

    Tu disposes dans access d'un type de requete qui s'appelle : Requete Mise à jour qui te permets de modifier un ensemble de champs par rapport à un critère.

    A toi de définir le critère (exemple sur la dte de saisie du temps) et tu appliques la formule de conversion des minutes en Heure.

    Bon courage

    a+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Ok merci de vos réponses

    Mais pour la formule de conversion ???

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    C'est la premiere fois que je fais ça

    Alors Je crée une nouvelle requête (Type de requête mise à jour)

    Avec la table où je dois convertir le champ. (pour moi réalisation)

    Je selectionne tous les champs, je les glisse dans la requête.

    Mais aprés quel est la marche à suivre ?

    Quelle formule ?

    Où dois je la placer et comment ?

  6. #6
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Salut,

    Je rentre de balade... c'est beau la Provence

    Le plus simple serait que tu ouvre ta requête en mode SQL, que tu la copies et que tu la colles dans ta prochaine réponse. Ce sera plus facile pour moi de te donner un coup de main pour ta formule

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Voila j'ai donc repris ta formule je l'ai mis dans la section mise à jour de la requête sur le champ Nbre Minutes que je veux convertir

    l'instruction SQL donne :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Réalisation SET Réalisation.[Nbre Minutes] = TimeSerial(Int([Nbre Minutes]/60),[Nbre Minutes]-(Int([Nbre Minutes]/60)*60),0);

    [Nbre Minute] est le champ que je veux convertir, il est déja renseigné par les Minutes (ex : 90) pour 1h30

    Je clique sur la requête est ça me donne regarde la pièce jointe.

    Le résultat donne des 0 dans le champ Nbre Minutes de la table Réalisation.
    Images attachées Images attachées   

  8. #8
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bien matinal..... !

    Bonjour ,

    Je pense que le problème est que tu fais appel au champ dans lequel tu effectues la modification (risque de boucle)

    Je te propose :
    1. Faire une copie de sauvegarde de ta table
    2. Ouvrir ta table et créer un nouveau champ "MonNouveauChamp" (format Date).
    3. Tu modifiess ta requête mise à jour avec la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Réalisation SET Réalisation.[MonNouveauChamp] = TimeSerial(Int([Nbre Minutes]/60),[Nbre Minutes]-(Int([Nbre Minutes]/60)*60),0);
    4. Une fois la table mise à jour avec ta requête, tu l'ouvres à nouveau en mode création, tu renommes ton nouveau champ avec le nom de l'ancien et tu effaces l'ancien et
    5. Tu me donnes des news

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Ok merci beaucoup ça marche.

    Merci de ta rapidité de réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] modifier les données dans le champs d'une table en sql
    Par carlostropico dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/12/2009, 16h24
  2. Réponses: 16
    Dernier message: 14/06/2009, 22h12
  3. Réponses: 6
    Dernier message: 14/03/2008, 16h12
  4. [MySQL] Afficher toutes les données d'un champ dans une liste déroulante
    Par Touareg dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/03/2007, 12h42
  5. Afficher les données d'un champ sur une ligne
    Par white-angel dans le forum Access
    Réponses: 6
    Dernier message: 30/08/2006, 11h09

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