[Catégorie ENCORE et ENCORE modifiée .Net --> VBA] Pb de conversion date access

[Résolu]
Signaler
Messages postés
32
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2015
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

J'exporte des données d'Access vers Excel.
Les dates ne sont pas converties dans la feuille Excel.
Ci-dessous le code:
Do While Not rst.EOF
        For j = 0 To rst.Fields.Count - 1
            'si c'est du texte (dbText) on insére "'" pour qu'il soit
            'reconnu par EXCEL comme texte
            If rst.Fields(j).Type = dbText Then
                xlSheet.Cells(i, j + 1) = "'" & rst.Fields(j)
          
            Else
                'si c'est une date (dbDate) "jj/mm/aaaa" pour qu'il soit
                'reconnu par EXCEL comme une date
                If rst.Fields(j).Type = dbDate Then
                    xlSheet.Cells(i, j + 1).NumberFormat = "jj/mm/aaaa"
                    xlSheet.Cells(i, j + 1) = rst.Fields(j)
                    xlSheet.Cells(i, j + 1).AutoFormat
                    
                Else
                xlSheet.Cells(i, j + 1) = rst.Fields(j)
                End If
            End If
        Next j
        i = i + 1
        rst.MoveNext
    Loop

J'ai essayé avec dd/mm/yyyy, idem
Les champs dans Access sont de type: Date,Abrégé
Merci d'avance de votre aide
Christian

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
Salut

Quand comprendras-tu que le VB des applications office est du VBA ?
Cela est important pour que les membres perdent leur temps à répondre dans un langage que tu ne pourras pas appliquer ...

Ah, les dates sous Excel !
Deux choses à vérifier :
- Est-ce que le .AutoFormat ne vient pas annuler ton précédent .NumberFormat ?
- Dans la ligne suivante, il faudrait compléter la syntaxe pour éviter que le compilateur interprète (mal) les données :
xlSheet.Cells(i, j + 1) = rst.Fields(j)
-> Cells.Value
-> Cells.Value2
-> Cells.Text
Chacun de ces attributs à un rôle particulier - vérifie dans l'aide de Excel.
Profites-en pour compléter la syntaxe côté Access :
... rst.Fields(j).Value

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
32
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2015

salut Jack,

Je suis peut être au début d'alzheimer
J'avais compris access et vb.
Je tacherai de m'en souvenir pour la prochaine fois.

Ok,j'effectue les modifs et je te t'informe du résultat.

Merci
Cldt
Christian
Messages postés
32
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2015

Re jack,

Tu es trop fort.
Effectivement .AutoFormat annule .NumberFormat .

Bravo et merci de tes précieux conseils.

A la prochaine fois

Cldt
Christian
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
79
lol, merci