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 :

macro pour changer le format d'une date [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut macro pour changer le format d'une date
    bonjour j'ai déja posé cette question dans une autre rubrique (SQL, requete) mais comme on m'a dit que ce n'est pas possible de le faire en requete j'ai donc initié une macro en vba accesss en utilisant DAO

    le but de cette macro est de changer le Format un champ d'une table qui se presente sous la forme dd/mm/yyyy en yyyymmdd

    j'ai donc utilisé DAO et les objets field ainsi que la fonction format mais je n'arrive pas à trouver la bonne propriété de field pour utiliser ma fonction

    j'ai un message d'erreur en me disant que ce n'est pas la bonne propriété de l'objet ! voici le code

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub test_modifDate()
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
     
    Set oDb = CurrentDb
     
    Set oRst = oDb.OpenRecordset("NomdeTable", dbOpenTable)
     
    While Not oRst.EOF
     
        'Passe en mode Ajout
         oRst.Edit
        'Affecte les différents champs
        oRst.Fields("champ").Value = format(champ, "aaaammjj")
     
        'Met à Jour
       oRst.Update
    'Passe au suivant
    oRst.MoveNext
    Wend
     
    'Libération des objets²
    oRst.Close
     
    oDb.Close
     
    Set oRst = Nothing
    Set oDb = Nothing
     
    End Sub

    ou est mon erreur ? quel est la bonne propriété de field que je dois utiliser pour que ma fonction marche ? MERCI pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une piste peut être: il faut mieux mettre le format en anglais soit: yyyymmdd
    comme tu le mets dans ton sujet.

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu souhaites modifier le format et non la valeur...

    Il s'agit d'une modification de la structure de la table et non de ses données.

    Exemple :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Function EcrirePropriete(strNom As String, oFld As DAO.Field, strValeur As String) As Boolean
    On Error GoTo err
        oFld.Properties(strNom).Value = strValeur
        EcrirePropriete = True
    fin:
    Exit Function
    err:
        If err.Number = 3270 Then
            oFld.Properties.Append oFld.CreateProperty(strNom, dbText, strValeur)
        Else
            err.Raise err.Number, , err.Description
            EcrirePropriete = False
        End If
        Resume fin
    End Function
     
     
    Sub ChangerFormat()
    Dim oDb As DAO.Database
    Dim oFld As DAO.Field
     
    Set oDb = CurrentDb
    Set oFld = oDb.TableDefs("matable").Fields("ChampDate")
    EcrirePropriete "Format", oFld, "yyyymmdd"
     
    End Sub

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    MERCI MERCI ET ENCORE MERCI ! si tu savais depuis combien de temps je galerais pour faire ça !! t'es le meilleur

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

Discussions similaires

  1. Sed pour changer le format d'une date
    Par moctarim dans le forum Shell et commandes POSIX
    Réponses: 5
    Dernier message: 27/12/2012, 13h45
  2. changer le format d'une date
    Par ecirb dans le forum VBScript
    Réponses: 1
    Dernier message: 04/04/2007, 08h25
  3. [XSLT] changer le format d'une date
    Par ami_in55 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/03/2007, 09h33
  4. [Dates] changer le format d'une date.
    Par maraly dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 16h17
  5. commant changer le format d'une date?
    Par tribaleur dans le forum ASP
    Réponses: 5
    Dernier message: 02/06/2006, 07h55

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