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 :

VBA / Ajout date de dernière modification du fichier


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    Points : 24
    Points
    24
    Par défaut VBA / Ajout date de dernière modification du fichier
    Salut à tous,

    Je débute en VBA et je galère sur un projet :

    Contexte : J'importe des fichiers texte dans des tables temporaires puis je les compile sur un master que je met à dispo des utilisateurs.

    Je voudrais extraire, dans un nouveau champ, la date de dernière modif des fichiers texte que j'importe. La requête MAJ ne me permet pas, avec le générateur, d'utiliser DateHeureFich donc je m'essaye au VBA (soyez gentil svp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'J'arrive à créer un nouveau champ date "DateImport" :
    DoCmd.RunSQL "ALTER TABLE ExpeditionsDPD ADD COLUMN DateImport date"
     
    'J'arrive à créer ma variable et à afficher la valeur dans Msgbox :
    Dim DPDdt As Date
    DPDdt = FileDateTime("\\fr-fs1\shared\TRANSPORTEUR\EXAPAQ\ExpeditionsDPD.txt")
    MsgBox "Fichier modifié le " & DPDdt, vbInformation
     
    'Mais je n'arrive pas à coller cette valeur dans le nouveau champ DateImport pour tous les enregistrements :
    DoCmd.RunSQL "UPDATE ExpeditionsDPD SET DateImport = DPDdt"
    Il me demande la valeur du paramètre DPDdt dans une boite de dialogue..

    J'ai essayé pas mal de truc mais sans résultats. Quelqu'un aurait-il une idée ?

    Merci d'avance à la communauté

    Alex

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Salut,

    dans ton instruction tu passes un libelle, pas la valeur qui t'interesse.
    De plus, il faut voir que ta valeur est de type Date donc il faut adapter le code avec le format #MM/DD/YYYY#
    Ta syntaxe devra donc etre la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE ExpeditionsDPD SET DateImport = #" & Format(DPDdt,"MM/DD/YYYY") & "#"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Vu que DPDdt est un variable dans ton code VBA, il te le faut sortir de ton expression SQL en tenant compte du fait que c'est une date. Donc le mettre entre # et utiliser plutôt le format US pour être sûr de la valeur envoyée.
    Ce qui donnerait pour la dernière ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "UPDATE ExpeditionsDPD SET DateImport =#" & Format(DPDdt,"yyyy/mm/dd") & "#"
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  4. #4
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Hello

    Super, ça marche

    ET en plus c'est logique et ça m'apprend quelque chose.

    Merci

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

Discussions similaires

  1. [Batch] ajouter la date de dernière modification au nom du fichier
    Par Knoizell dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/05/2012, 15h13
  2. [PB 9 -> PB 11] Date de dernière modification d'un fichier
    Par hicks51100 dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 27/06/2008, 15h26
  3. Connaître la date de dernière modification d'un fichier
    Par Olivier Regnier dans le forum Web
    Réponses: 9
    Dernier message: 08/11/2007, 15h34
  4. Date de dernière modification d'un fichier
    Par defacta dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2007, 13h10
  5. Réponses: 3
    Dernier message: 17/07/2007, 15h21

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