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 :

Problème Date au format Américain


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème Date au format Américain
    Bonjour à tout le monde. Je suis tombé sur un tutorial EXCELLENT. En effet ça faisait déjà 2 jours que je m'embrouillais à trouver comment faire pour à partir d'un formulaire pouvoir paramétrer mes requêtes et à cette adresse http://www.developpez.net/forums/sho...d.php?t=365000 j'ai réellement trouvé mon BONHEUR. Cependant, si je m'adresse à vous c'est que j'ai encore un petit problème. Le paramétrage des requêtes fonctionne très bien pour du texte ou des numériques, parcontre pour les dates j'ai un souci. Le problème est le suivant, j'ai bien pensé à mettre chr(35) pour les # des dates de mes ActiveX "Contrôle Calendar" cependant les dates sont stockées au format américain mm/dd/yyyy et non français dans ma requête paramétrée; ce qui me donne malheureusement des requêtes fausses. Et je précise que j'ai testé avec une Msgbox pour savoir si ça venait de l'ActiveX mais non car ça m'affiche bien le format dd/mm/yyyy. J'espère avoir été claire et je vous remercie d'avance d'éclairer ma lanterne et s'il vous plaît soyez indulgent c'est mon premier post . Cordialement.

    Mon code pour les puristes:
    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
     
    Private Sub btvalider2_Click()
    On Error GoTo err
    'Toutes les déclarations
    Dim Db As DAO.Database
    Dim QryModele As DAO.QueryDef
    Dim RstTable As DAO.Recordset
    Dim strSQLModele As String
    Dim strNomRqt As String
    Dim stDocName As String
    'Instancie la base de données courante
    Set Db = CurrentDb
    'Ouvre la table des requetes sur l'enregistrement
    'dont le nom de la requête est "rq dos_Temp"
    strNomRqt = "rq dos_Temp"
    'chr(34) en code ASCII donne les guillemets
    Set RstTable = Db.OpenRecordset("SELECT * FROM TABLE_SQL WHERE NomRqt=" & Chr(34) & strNomRqt & Chr(34))
    'Si la requête est trouvée dans la table,& Chr(34)
    If Not RstTable.EOF Then
      'Récupère le code correspondant
      strSQLModele = RstTable.Fields("CodeRqt")
      'Effectue le remplacement du critere par la valeur
     strSQLModele = Replace(strSQLModele, "DEBUT", Chr(35) & Nz(Calendar0) & Chr(35))
     strSQLModele = Replace(strSQLModele, "FIN", Chr(35) & Nz(Calendar1) & Chr(35))
     'strSQLModele = Replace(strSQLModele, "[N° AFFAIRE?]", Chr(34) & (NumAffaire) & Chr(34))
     
      'Si un objet requête existe déjà alors
      If TesteExistenceRequete(strNomRqt) Then
        'alors modifier le code de la requête
        Db.QueryDefs(strNomRqt).SQL = strSQLModele
        'Sinon
     Else
        'Créer la nouvelle requête
       Db.CreateQueryDef strNomRqt, strSQLModele
     End If
     
       DoCmd.OpenReport "liste affaire ZC 2006", acViewPreview
     
     
    'Sinon
    Else
    'Avertir que le code SQL n'est pas disponible
    MsgBox "Impossible de trouver la requête : " & strNomRqt & " dans la table des requêtes"
    End If
     
    Exit Sub
    err:
    MsgBox "Une erreur est survenue" & vbCrLf & err.Description, vbCritical, "Mauvaise Dosimétrie"
     
     
    End Sub
    ici DEBUT c'est ma date de début et FIN date de fin. Et les 2 ActiveX Calendar0 et Calendar1.

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Bonjour et bienvenue sur ce merveilleux forum,
    Il est possible d'obliger les dates à adopter le format américain en utilisant la fonction Format.
    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQLModele = Replace(strSQLModele, "DEBUT", "#" & Format(Nz(Calendar0,Date()),"mm/dd/yyyy") & "#")
    Je préfère utiliser # que Chr(35) et j'ai complété la fonction nz pour qu'elle donne la date courante si aucune date n'est proposée (tu peux l'ignorer bien entendu).
    Je ne sait pas si cela te convient mais bon courage et @+

    PS: Il serait préférable que le contenu du code SQL de strSQLModele nous soit communiqué je pense.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/04/2014, 18h38
  2. [XL-2003] Date au format américaine dans un csv
    Par qltmi dans le forum Excel
    Réponses: 1
    Dernier message: 05/02/2010, 20h50
  3. [RegEx] Date au format américain
    Par thierry.kunzi dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2009, 09h40
  4. Afficher une date au format américain
    Par Gregory.M dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/11/2008, 18h04
  5. Exporter dates au format américain
    Par RKU01 dans le forum Access
    Réponses: 5
    Dernier message: 01/12/2006, 22h28

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