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

Macros et VBA Excel Discussion :

Problème Format DATES VBA Excel/Access


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 260
    Par défaut Problème Format DATES VBA Excel/Access
    Bonjour à tous,

    Je peine depuis hier avec le formatage des dates. En effet, j'ai commencé un projet dans une société avec Office en Français, seulement sur mon pc perso j'ai Office en Anglais.
    J'ai donc créé une fonction dans un module pour obtenir automatiquement le bon format:

    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
     
    Global gDtCode As String
     
     
    Public Sub SetTimeFormat()
        With Application
            Select Case .International(xlDateOrder)
                ' Anglais
                Case 0   'mdy
                  '  MsgBox Format("15/12/2021", "mm/d/yyyy")
                    gDtCode = "mm/d/yyyy"
                ' Français
                Case 1  'dmy
                    gDtCode = "dd/mm/yyyy"
                ' Mongole
                Case 2 'ymd
                    gDtCode = "yyyy/mm/dd"
            End Select
     
        End With
    End Sub
    Jusque là tout fonctionne correctement.

    Seulement voici le soucis, je n'arrive pas à récupérer une ligne dans la base Access alors que lors du débuggage tout à l'air de matcher :


    Nom : fgbfgbrtgtgr.png
Affichages : 126
Taille : 68,3 Ko

    Nom : gfbgrfbfgb.png
Affichages : 123
Taille : 8,8 Ko

    C'est bien la date qui pose problème !!!! Pourtant elle est fournie avec le format existant en Base !!!

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 576
    Par défaut
    Bonjour,
    Voilà un petit 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
    test()
    Debug.Print TrouveTypeSql("")
    Debug.Print TrouveTypeSql("toto")
    Debug.Print TrouveTypeSql(Date)
    Debug.Print TrouveTypeSql(Now)
    Debug.Print TrouveTypeSql(10.5)
     
    SQL= "INSERT INTO Files (Path, File, DateLastModified) VALUES (" & TrouveTypeSql(strFilePath) & "," & TrouveTypeSql(strFileName) & "," & TrouveTypeSql(dtDateLastModified) & ")"
    Debug.Print SQL
    cnn.Execute  SQL
    End Sub
     
     
    Function TrouveTypeSql(V)
    TrouveTypeSql = Trim("" & V)
    If Trim("" & TrouveTypeSql) = "" Then TrouveTypeSql = "Null": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 And InStr(TrouveTypeSql, ":") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd hh:mm") & "#": Exit Function
    If IsDate(TrouveTypeSql) = True And InStr(TrouveTypeSql, "/") <> 0 Then TrouveTypeSql = "#" & Format(TrouveTypeSql, "yyyy-mm-dd") & "#": Exit Function
    If IsNumeric(Replace(TrouveTypeSql, ".", ",")) = True Then TrouveTypeSql = Replace(TrouveTypeSql, ",", "."): Exit Function
    TrouveTypeSql = "'" & Replace(TrouveTypeSql, "'", "''") & "'"
    End Function

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 260
    Par défaut
    Merci pour ton message, mais je ne vois pas du tout où tu veux en venir.
    Peux-tu me dire plutôt ce qui cloche la dedans : Sachant que tous les paramètres correspondent à une ligne de la base de données !!


    Nom : ergfergergergergergrgregerge.png
Affichages : 100
Taille : 30,6 Ko

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 576
    Par défaut
    Bonjour,
    Je corrigerai bien ton code mais je suis pas très à l'aise avec Photoshop !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " AND E.DateEnt=#" & format(sdate,"YYYY-MM-DD") & "#"

  5. #5
    Membre très actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 260
    Par défaut
    Merci mais ce ne sont pas des tirets les séparateurs, mais des "/".

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 260
    Par défaut
    J'ai résolu mon problème!

    Le soucis venait de la base de données: j'avais omis de mettre le champ DateEnt en type "Short Date".


  7. #7
    Membre très actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2011
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 260
    Par défaut
    Bon alors en réalité le soucis vient aussi d'une absence de temporisation. En effet, j'insère d'abord une nouvelle ligne dans une table, et ensuite je veux récupérer l'identifiant de la nouvelle ligne ajoutée. Mais cela nécessite de mettre un delay entre les deux actions, sinon la base de données n'a pas le temps de se raffraichir, et donc ça ne récupère rien.

    J'avais donc deux problèmes en série, d'où la difficulté....... et encore je veux pas m'avancer trop vite........

  8. #8
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 576
    Par défaut
    Citation Envoyé par wilfryjules Voir le message
    Merci mais ce ne sont pas des tirets les séparateurs, mais des "/".
    Le format international s'écrit toujours YYYY-MM-DD

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

Discussions similaires

  1. Problème formats date entre liaison Access et Excel
    Par vicovico dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/01/2017, 08h27
  2. Problème de date Vba excel
    Par larosse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2009, 18h33
  3. [Access 97]Problème format numérique export Excel
    Par waici dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 03/04/2008, 09h52
  4. [VBA Excel/Access] problème de fermeture instantannée d'Access
    Par torky dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/07/2007, 09h30
  5. problème de date dans excel via vba.
    Par Bourezak dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/12/2006, 13h39

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