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

Access Discussion :

Diviser en 2 un champ


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Diviser en 2 un champ
    Bonjour et merci de lire ces lignes de débutant!

    Voila, j'ai un fichier .mdb lié dans access dont un champ est Date/heure.
    ex.:
    12-9-2011 6:40:30 | 18.67

    Comment je peux faire pour diviser en 2 champ la date et l'heure dans une requête ou autre pour que lors de l'exportation en .csv, j'ai ceci comme résultat.

    12-9-2011;6:40:30;18.67

    Merci de votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    À mettre dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public function DecouperDate(prmDate as string) as string
      dim result as string
     
      dim dateHeureDuree as variant:dateHeureDuree=split(prmDate,"|") 'Sépare la date et l'heure de l'autre heure
      dim dateHeure as variant:dateHeure=split(dateHeureDuree(0)," ") 'Sépare la date de l'heure
      dim dateAnneeMoisJour as variant:dateAnneeMoisJour=split(dateHeure(0)) 'Sépare la date en ses éléments, supose le format JJ-MM-AAAA
     
      'Recompose les différents éléments
      dim dateDecoupee as date:dateDecoupee=dateserial(dateAnneeMoisJour(2), dateAnneeMoisJour(1), dateAnneeMoisJour(0))
      dim heureDecoupee as date:heureDecoupee=cDarte(dateHeure(1))
      dim dureeDecoupee as string:dureeDecoupee=dateHeureDuree(2)
     
      'Compose le résultat en lui donnant le format voulu.
      result=format(DateDecoupee,"yyyy\-m\-d") & ";" & format(heureDecoupee1,"hh:nn:ss") & ";" & dureeDecoupee
      DecouperDate=result
    end function
    à utiliser dans une requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecouperDate([tonChampADecouper])

  3. #3
    Membre actif
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Mars 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Mars 2009
    Messages : 177
    Points : 270
    Points
    270
    Par défaut
    Bonsoir tout le monde;


    On pourrait aussi utiliser une requete avec 2 champs calculés: l'un pour extraire la date et l'autre pour extraire l'heure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ExtracDate = Format([monchamp];"hh:nn:ss")
    ExtracHeure= Format([monchamp];"jj/mm/aaaa")
    J'ai testé cette solution et à priori ça marche

    Cordialement

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    marot_r:

    Oups, j'ai fais une petite erreur dans mon exemple.
    En réalité, le champ que je veux séparer n'inclus pas "| 18.67"
    mais uniquement "12-9-2011 6:40:30"

    Mon exemple étais la requêt en général d'ou le "|" pour séparer les 2 champs.

    Et c'est mon erreur

    Donc pour l'instant, laissez moi essayer de corriger votre code, si je ni arrive pas, je vous demanderais. de cette façon je peux apprendre.

    Mille merci et je vous reviens.
    désolé du temps de réponse, très occupé

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Tu voudras alors peut-être utiliser le code Reedy qui devrait marcher directement.

    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    oui mais ça ne fonctionne pas pour moi
    j'ai cette erreur:




    Mais pour votre code j'ai essayer quelques petites choses et je n'y arrive pas trop.

    Aussi la date à la source est de ce format: 27/10/2001.

    voir ici:


    C'est ce que je voudrais diviser en 2 date et heure.

    Merci!!

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    DateTime est vu comment par Access : texte ou date ?

    A+

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Type de données = Date/Heure


  9. #9
    Membre actif
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Mars 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Mars 2009
    Messages : 177
    Points : 270
    Points
    270
    Par défaut
    Bonsoir,

    Attention à la syntaxe. La voici corrigée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date : Format([monchamp];"hh:nn:ss")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Heure : Format([monchamp];"jj/mm/aaaa")
    Cordialement

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2011
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Ça marche!!!
    Oooooh ouiiii!

    Ça fonctionne!!
    Juste que sans savoir pourquoi, ce n'est pas un ";" mais une "," que je devais mettre et bingo.

    Merci a vous 2 pour votre aide très précieuse et une bonne journée.


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

Discussions similaires

  1. Diviser un champ montant par 100
    Par zilfana63 dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/02/2008, 11h40
  2. division champ onkeyup
    Par debutantasp dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/01/2008, 16h23
  3. Comment diviser une zone de texte d'un champ
    Par erikac dans le forum IHM
    Réponses: 5
    Dernier message: 03/02/2007, 21h07
  4. Diviser un champ dans un état
    Par F_Labbé dans le forum IHM
    Réponses: 6
    Dernier message: 09/12/2006, 22h59
  5. Diviser les valeurs d'un champ
    Par celine86 dans le forum Access
    Réponses: 7
    Dernier message: 14/02/2006, 09h58

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