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 :

[AC-2002] code Vba pour modifier le format jour dans un fichier.


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 89
    Points
    89
    Par défaut [AC-2002] code Vba pour modifier le format jour dans un fichier.
    Bonjour,
    j'ai fais un code pour extraire l'ensemble des table de ma base de données sous forme de fichiers txt.
    Maintenant j'essai d'ouvrir tout le fichier et de modifier le format jour des dates.

    je m'explique j'ai les dates au format 1-jan-2018 dans le fichier txt.

    J'essaie de "trapper" le caractère - de faire "-1" et de modifier le 1- par 01- pour au final avoir la notation 01-jan-2018.

    Voilà où j'en suis au niveau du code mais cela ne fonctionne pas.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    Sub Fichier_TXT3()
     
    Dim Rds       As Recordset
    Dim Ligne     As String
    Dim Chaine    As String
    Dim Caractere As String
    Dim Nb_lig    As Long
     
     
        ' Ouverture table Dico
        Set Rds = CurrentDb.OpenRecordset("Select distinct nom_table, nom_fichier from DICO ")
        Rds.MoveFirst
     
        ' Parcourt table Dico
        Do While Not Rds.EOF
     
            Nb_lig = 0
     
            'S'il y a presence du fichier "csv" correspondant, alors
            If (Rds!NOM_FICHIER = Dir(Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & Rds!NOM_FICHIER)) Then
     
                ' Ouverture des fichiers
                Open Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & Rds!NOM_TABLE & ".txt" For Input Access Read As #1
                Open Left(CurrentDb.Name, InStrRev(CurrentDb.Name, "\")) & Rds!NOM_TABLE & ".CSV" For Output Access Write As #2
     
                Caractere = ""
     
                ' Parcourt de chaque ligne
                Do While Not EOF(1)
                    Caractere = Input(1, #1)
                    If Caractere = "-" Then
                        Chaine = Caractere & Input(2, #1)
     
                        Select Case Chaine
                            Case "1-"
                            Ligne = Ligne & "01-"
                            Case "2-"
                            Ligne = Ligne & "02-"
                            Case "3-"
                            Ligne = Ligne & "03-"
                            Case "4-"
                            Ligne = Ligne & "04-"
                            Case "5-"
                            Ligne = Ligne & "05-"
                            Case "6-"
                            Ligne = Ligne & "06-"
                            Case "7-"
                            Ligne = Ligne & "07-"
                            Case "8-"
                            Ligne = Ligne & "08-"
                            Case "9-"
                            Ligne = Ligne & "09-"
                            Case Else
                            Ligne = Ligne & Chaine
                        End Select
     
                    Else
     
                        ' Saut de ligne
                        If Caractere = vbCr Or Caractere = vbLf Then
     
                            If Len(Ligne) > 0 Then
                               Print #2, Ligne
                               Nb_lig = Nb_lig + 1
                            End If
     
                            Ligne = ""
     
                        Else
                            Ligne = Ligne & Caractere
                        End If
     
                    End If
                Loop
     
                ' Fermeture des fichiers
                Close #1
                Close #2
            End If
     
            ' Mise à jour du nombre de lignes du fichier
            CurrentDb.Execute ("Update DICO set nb_lig_fic = " & Nb_lig & " where nom_table = """ & Rds!NOM_TABLE & """ ")
     
            ' Enregistrement suivant
            Rds.MoveNext
        Loop
        Exit Sub
     
        ' Liberation
        Rds.Close
        Set Rds = Nothing
     
    End Sub
    Merci par avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour
    Pourquoi te compliquer ? c'est un format date reconnu par Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ? cdate("1-jan-2018")
    01/01/2018
    la seule question à se poser est de savoir si le mois est en français ou en anglais (vérifier par exemple février: fév ou feb) car dans ce dernier cas elle renverra une erreur.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Code vba pour modifier Personal.xlsb
    Par Pap75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/05/2018, 08h19
  2. [AC-2010] Code VBA pour Modifier Chemin dans Importation Enregistrée
    Par den91240 dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/06/2016, 06h58
  3. Réponses: 7
    Dernier message: 10/03/2015, 14h00
  4. Réponses: 1
    Dernier message: 09/01/2012, 13h52
  5. [XL-2007] code vba pour cliquer sur un bouton dans internet explorer
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2011, 20h21

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