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 :

Format de date US au lieu de FR durant modification d'une requete dynamiquement via vba [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 73
    Points : 62
    Points
    62
    Par défaut Format de date US au lieu de FR durant modification d'une requete dynamiquement via vba
    Bonjour,

    J'ai un formulaire qui contient des dates au format abrégé FR dd/mm/aaa.
    Une requete modele
    une requete dynamique finale contenant les dates extraites du formulaire.

    Le code vba ci-dessous modifie la requête modèle de manière dynamique. Elle récupère deux dates contenus dans des champs de formulaires au format de date FR abrégée dd/mm/aaaa et modifie dans la requête modèle les critères correspondants.

    Dans les msgbox qui parsement mon code, à chaque fois le format de date FR est correct mais ensuite ce format est remplacé par le format US dans ma requête finale lorsque je l'ouvre et que je regarde les critères en mode création. je ne vois pas trop pourquoi puisque lorsque j'ouvre une msgbox avec le contenu de ma requête SQL et bien le format de date est correcte (dd/mm/aaaa). y a t'il un moyen simple de palier au problème ou je suis obligé de partir sur des dates US dans mon formulaire de départ ? Et dans ce cas comment préciser dans mon formulaire que le champs doit être au format US.

    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
    Public Sub ModificationReq(ReqModele As String, CritereAModife As String, ResultatDocAchat As String, PlagePeriode1 As Date, PlagePeriode2 As Date)
     
    Dim Db As DAO.Database
    Dim QryModele As DAO.QueryDef
    Dim strSQLModele As String
     
    'Nom de la requete finale
    Dim NomReqFinal As String
    'MsgBox "NomReqFinal =#" & NomReqFinal & "# Avant modif 1"
    NomReqFinal = Replace(ReqModele, "Modele", "Dynamique")
    'MsgBox "NomReqFinal =#" & NomReqFinal & " après modif 1"
    NomReqFinal = Replace(NomReqFinal, "Modèle", "Dynamique")
    'MsgBox "NomReqFinal =#" & NomReqFinal & "  est la nouvelle requete modifié de :" & ReqModele
     
    'Initialisation des variables
    Set Db = CurrentDb
    Set QryModele = Db.QueryDefs(ReqModele)
    strSQLModele = QryModele.SQL
     
    'MsgBox PlagePeriode1 & "    " & PlagePeriode2
    'Modification de la requete source
    strSQLModele = Replace(strSQLModele, CritereAModife, ResultatDocAchat)
    strSQLModele = Replace(strSQLModele, "[#Periodevente1#]", "#" & PlagePeriode1 & "#")
    strSQLModele = Replace(strSQLModele, "[#Periodevente2#]", "#" & PlagePeriode2 & "#")
    MsgBox "1    " & strSQLModele
     
    If TesteExistenceReqAchat(NomReqFinal) Then
      'alors modifier le code de la requête
      Db.QueryDefs(NomReqFinal).SQL = strSQLModele
     
    'contenue de ma requete sql affiché dans la msgbox
      MsgBox Db.QueryDefs(NomReqFinal).SQL
      'MsgBox ("Requete modifie" & " NomReqFinal:" & NomReqFinal & " Existe")
     
    'Sinon
    Else
      'Créer la nouvelle requête
      Db.CreateQueryDef NomReqFinal, strSQLModele
      MsgBox Db.QueryDefs(NomReqFinal).SQL
      'MsgBox ("Requete crée") & " NomReqFinal:" & NomReqFinal & " n'existe pas"
    End If
     
    Set Db = Nothing
    Set QryModele = Nothing
     
    End Sub
    Merci d'avance à la communauté

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour benji971,

    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQLModele = Replace(strSQLModele, "[#Periodevente1#]", Format(PlagePeriode1 , "\#mm\/dd\/yyyy\#") )

  3. #3
    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,

    le format de date est assez capricieux =]
    http://access.developpez.com/faq/?page=dates#datedouble
    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

  4. #4
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 73
    Points : 62
    Points
    62
    Par défaut
    C'est pile poil ce que je cherchais jbell !
    un grand merci à toi je vais garder cette fonction sous le coude pour plus tard car elle risque de resservir rapidement.
    je n'avais pas tenté au départ car je pensais que la date était convertie après le remplacement vba, lorsqu'on ouvre la requête finale, mais apparemment non.

    la deuxième solution est intéressante aussi (la conversion au format Double) mais je la trouve moins parlante.

    Merci à vous deux en tout cas.

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

Discussions similaires

  1. [AC-2010] Format Date dans une requete SQL en VBA
    Par tveniere dans le forum Access
    Réponses: 2
    Dernier message: 02/04/2021, 11h54
  2. [BI4] format de date US au lieu de FR
    Par erox44 dans le forum Webi
    Réponses: 0
    Dernier message: 18/09/2014, 14h48
  3. Réponses: 2
    Dernier message: 12/12/2013, 17h01
  4. [Débutant] [VB.NET] envoi de la date dans une requete SQL via ADO.NET
    Par yassine-art dans le forum ADO.NET
    Réponses: 2
    Dernier message: 28/04/2012, 13h08
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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