[Access] pb format date SQL et VBA

durahsel Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
 A_PAUL54 -
Bonjour,

j'ai un problème dont j'ai mis longtemps à trouver la source mais maintenant que je l'ai identifiée je ne sais pas trop comment la traiter :

J'ai créé un formulaire de recherche qui avec du code VBA permet de rechercher des enregistrements notamment par date.

Donc mon code VBA comprend su SQL avec une instruction du type ...
[...] AND WHERE table.date=#" & Me.TxtFormulaire & "# " [...]

Seulement le problème est que SQL stocke ou comprend la date au format MM/JJ/AA et le formulaire JJ/MM/AA donc ma requête ne marche que si je rentre les dates à l'anglaise dans le formulaire.

Rq : en fait ça marche lorsque JJ est supérieur à 12 car il doit reconnaître automatiquement sinon ça ne marche pas.

Comment convertir la date SQL en format français ?

merci d'avance,
Configuration: Windows Vista
Firefox 3.0.6

7 réponses

  1. durahsel Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci incaout,

    Ton astuce a fonctionné, la synthaxe exacte était :

    DateEn = DatePart("yyyy", Me.TxtDate) & "/" & DatePart("m", Me.TxtDate) & "/" & DatePart("d", Me.TxtDate)

    pour convertir en date anglaise depuis mon formulaire en date française

    merci !
    3
  2. A_PAUL54
     
    PASCRIPT
    sQL = "SELECT DISTINCTROW * FROM [Commandes] WHERE ((([À livrer avant]) Between #" & Month([À livrer avant]) & "/" & Day([À livrer avant]) & "/" & Year([À livrer avant]) & "# And #" & Month([À livrer avant]) & "/" & Day([À livrer avant]) & "/" & Year([À livrer avant]) & "#))"
    1
  3. durahsel Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   11
     
    merci à tous
    0
  4. A_PAUL54
     
    Site : PaScript
    MODULES INSERTION ET MISE À JOUR DES DONNÉES DANS UNE TABLE( SGBD )
    Editeur de bases erface vraiment conviviale aussi bien pour des utilisateurs débutants qu'expérimentés.
    - Affichage des échanges en temps réel. -
    - Editeur Multibases -Transactions-Génération de scripts-
    - Génération de Procédures-
    -Champs contenant des apostrophes-
    - Code à Inclure dans votre application-
    -système d'exploitation -
    95 - 98 - 2000 -, Windows NT - 2000/2003 – XP - NT4 – Windows XP – Windows vista

    C'est un utilitaire qui permet d'accéder et de manipuler d'échanger des données en générant des scripts Sql et du code Vb sur des Bases de de données(Access 97, 2000, 2003, Excel, Db Base, Fox Pro, Lotus 1-2-3, Oracle, Paradox, SQL Server,TXT)
    Creation Tables, Attachées(Access 97 et 2000, Excel, Paradox, dbase, Fox Pro, Oracle, SQL Sever)
    Optimisation ( Index , Create Index , Contraint Check , Supprimer )
    Configuration d'un Contrôle Data ( SGBD )
    Oracle Objects
    Changer mot de passe ( mot de passe )
    NewUtilisateur ( User SQL Server , User Oracle )
    Trier et regrouper les données, Recheche inverse , Multi critères , Apostrophes
    Creation Index ( Access, Oracle, SQL Server )
    Export Tables Access ( Excel, Paradox, dbase, Fox Pro, Oracle, SQL Server, TXT )
    Import des Tables vers Access( Excel, Paradox, dB Base, Fox Pro, Oracle, SQL Serve r)
    Export Tables TXT ( Access, dbase, Excel, Oracle, SQL Server )
    Export Tables Excel ( Access, Paradox, dbase, Fox Pro, Oracle, SQL Server, TXT )
    Export Tables ORACLE ( Access, Excel, Paradox, dbase, Fox Pro, SQL Server, TXT )
    Export Tables SQL Server ( Access, Excel, Paradox, dbase, Fox Pro, Oracle, TXT )
    Export Tables dbase ( Access, Excel, Oracle,Paradox, SQL Server, TXT )
    Création table en dynamique, Requêtes d'insertion ( SGBD )
    Supprimer ( doublons )
    Raccourci ou creation de table sous Access( Excel, Paradox, dbase, Fox Pro, CSV )
    Access, tronquer,concaténation,formulaire( Les limites d'Excel , Concat, Form )
    Sur un format date possibilité de rechercher( une journée de la semaine, le mois, jour ou année, Changement de format, heures )
    Exportation Table Access vers Excel (DAO.Database & Workbooks.Open).
    Importation Table Excel vers, Access, SQL Server, Oracle (SGBD)
    SQL Serveur ,Oracle Export tables attachées ( acLink Oracle , acLink SQL Server )
    Import Fichiers Délimités ( Access, SQL Server, Oracle )
    New data ou Modification data ( dbSeeChanges )
    Exportation base Access vers Base SQL Server ( Conservant les contraintes )
    Access Création (Fichier CSV)
    INSERT INTO ( Access dbase , Access Excel , Access FoxPro 3.0, Access Oracle , Access SQL Server , Access TXT)
    INSERT INTO ( dbase Access , dbase Excel, dbase SQL Server, dbase Oracle, dbase TXT)
    INSERT INTO ( Excel Access ,Excel dbase , Excel Paradox, Excel SQL Server, Excel Oracle ,Excel TXT)
    INSERT INTO ( Oracle Access, Oracle dbase, Oracle Excel, Oracle Paradox, Oracle SQL Server , Oracle TXT)
    INSERT INTO ( TXT Access , TXT dbase, TXT Excel, TXT Oracle, TXT SQL Server )
    INSERT INTO ( SQL Server Access,SQL Server dbase , SQL Server Excel , SQL Server Oracle )
    UPDATE DISTINCTROW [XXX] INNER JOIN [YYY] ON [XXX].[ID] = [YYY].[ID]
    DELETE DISTINCTROW [XXX] INNER JOIN [YYY] ON [XXX].[ID] = [YYY].[ID]
    Modules Insertion et mise à jour des données dans une table ( SGBD ).
    Import Export TXT CVS:
    Création auto du fichier Schema.ini (Avec ou sans les Noms de champs. absence of data (spaces) Commas, tabs).
    0
    1. chaumeur
       
      est-ce une blague?

      C'est une réalité il suffit d'allé voir sur le site Le produit que j'ai développé le fait. Le script à une variante prés, l'exécute en dynamique.
      Vous récupérer le script..
      PS : Ce n'est pas professionnel de sa part Désactivé par PCPT ??????
      « Ce nouvel exemple d'utilisation d'ADO.NET se focalise sur la liaison de données
      est-ce une blague? « ...»
      Paul ,


      'Référence-VBAPoject : Microsolft DAO 3.6 Object Library
      'Excel ves Access
      'Module VBA à insérer > Set DBX = OpenDatabase(...)
      Sub CreateBaseBisAccess()
      Dim DB As Database, DBX As Database, sDestination As String, gExpDB, sTable, idxFrom, idxTo, idxFromName, sType, gsSQLDB
      Dim RS As DAO.Recordset, TableEnCour As DAO.Recordset
      Dim fldLoop As Field, tdfNew As TableDef

      On Error Resume Next
      Set DBX = OpenDatabase("E:\Documents and Settings\PAUL\Bureau\CLIENTS.XLS", False, gnReadOnly, "Excel 5.0;")
      Set TableEnCour = DBX.OpenRecordset("CLIENTS$", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      Screen.MousePointer = 11
      'pointe sur la base MDB
      sDestination = "E:\Documents and Settings\PAUL\Bureau\DEMO\FICHIER\CLIENTS.MDB"

      sConnect = ";pwd="
      Set DB = OpenDatabase(sDestination, False, gnReadOnly, sConnect)

      Do Until TableEnCour.EOF
      Set RS = DB.OpenRecordset("select * FROM [CLIENTS] WHERE ((([CLIENTS].[codeclient]) Like '" & TableEnCour.Fields(0).Value & "'))", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      If RS.RecordCount = 0 Then
      RS.AddNew
      Else
      RS.Edit
      End If
      RS.Fields("codeclient").Value = TableEnCour.Fields("codeclient").Value
      RS.Fields("société").Value = TableEnCour.Fields("société").Value
      RS.Fields("contact").Value = TableEnCour.Fields("contact").Value
      RS.Fields("fonction").Value = TableEnCour.Fields("fonction").Value
      RS.Fields("adresse").Value = TableEnCour.Fields("adresse").Value
      RS.Fields("ville").Value = TableEnCour.Fields("ville").Value
      RS.Fields("région").Value = TableEnCour.Fields("région").Value
      RS.Fields("code postal").Value = TableEnCour.Fields("code postal").Value
      RS.Fields("pays").Value = TableEnCour.Fields("pays").Value
      RS.Fields("téléphone").Value = TableEnCour.Fields("téléphone").Value
      RS.Fields("fax").Value = TableEnCour.Fields("fax").Value
      RS.Update
      TableEnCour.MoveNext
      Loop
      TableEnCour.Close
      DB.Close
      Set DB = Nothing
      Set TableEnCour = Nothing
      Screen.MousePointer = 0
      End Sub


      'Référence-VBAPoject : Microsolft DAO 3.6 Object Library
      'Access vers Excel
      'Module VBA à insérer > Set DBX = OpenDatabase(...)
      Sub CreateBaseBisAccess()
      Dim DB As Database, DBX As Database, sDestination As String, gExpDB, sTable, idxFrom, idxTo, idxFromName, sType, gsSQLDB
      Dim RS As DAO.Recordset, TableEnCour As DAO.Recordset
      Dim fldLoop As Field, tdfNew As TableDef

      On Error Resume Next
      Set DBX = OpenDatabase("E:\Documents and Settings\PAUL\Bureau\CLIENTS.MDB", False, gnReadOnly, "")
      Set TableEnCour = DBX.OpenRecordset("CLIENTS", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      Screen.MousePointer = 11
      'pointe sur la base XLS
      sDestination = "E:\Documents and Settings\PAUL\Bureau\DEMO\FICHIER\CLIENTS.XLS"

      Set DB = OpenDatabase(sDestination, False, gnReadOnly, "Excel 5.0;")

      Do Until TableEnCour.EOF
      Set RS = DB.OpenRecordset("select * FROM [CLIENTS] WHERE ((([CLIENTS$].[codeclient]) Like '" & TableEnCour.Fields(0).Value & "'))", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      If RS.RecordCount = 0 Then
      RS.AddNew
      Else
      RS.Edit
      End If
      0
    2. chaumeur
       
      est-ce une blague?

      C'est une réalité il suffit d'allé voir sur le site Le produit que j'ai développé le fait. Le script à une variante prés, l'exécute en dynamique.
      Vous récupérer le script..
      PS : Ce n'est pas professionnel de sa part Désactivé par PCPT ??????
      « Ce nouvel exemple d'utilisation d'ADO.NET se focalise sur la liaison de données
      est-ce une blague? « ...»
      Paul ,


      'Référence-VBAPoject : Microsolft DAO 3.6 Object Library
      'Excel ves Access
      'Module VBA à insérer > Set DBX = OpenDatabase(...)
      Sub CreateBaseBisAccess()
      Dim DB As Database, DBX As Database, sDestination As String, gExpDB, sTable, idxFrom, idxTo, idxFromName, sType, gsSQLDB
      Dim RS As DAO.Recordset, TableEnCour As DAO.Recordset
      Dim fldLoop As Field, tdfNew As TableDef

      On Error Resume Next
      Set DBX = OpenDatabase("E:\Documents and Settings\PAUL\Bureau\CLIENTS.XLS", False, gnReadOnly, "Excel 5.0;")
      Set TableEnCour = DBX.OpenRecordset("CLIENTS$", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      Screen.MousePointer = 11
      'pointe sur la base MDB
      sDestination = "E:\Documents and Settings\PAUL\Bureau\DEMO\FICHIER\CLIENTS.MDB"

      sConnect = ";pwd="
      Set DB = OpenDatabase(sDestination, False, gnReadOnly, sConnect)

      Do Until TableEnCour.EOF
      Set RS = DB.OpenRecordset("select * FROM [CLIENTS] WHERE ((([CLIENTS].[codeclient]) Like '" & TableEnCour.Fields(0).Value & "'))", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      If RS.RecordCount = 0 Then
      RS.AddNew
      Else
      RS.Edit
      End If
      RS.Fields("codeclient").Value = TableEnCour.Fields("codeclient").Value
      RS.Fields("société").Value = TableEnCour.Fields("société").Value
      RS.Fields("contact").Value = TableEnCour.Fields("contact").Value
      RS.Fields("fonction").Value = TableEnCour.Fields("fonction").Value
      RS.Fields("adresse").Value = TableEnCour.Fields("adresse").Value
      RS.Fields("ville").Value = TableEnCour.Fields("ville").Value
      RS.Fields("région").Value = TableEnCour.Fields("région").Value
      RS.Fields("code postal").Value = TableEnCour.Fields("code postal").Value
      RS.Fields("pays").Value = TableEnCour.Fields("pays").Value
      RS.Fields("téléphone").Value = TableEnCour.Fields("téléphone").Value
      RS.Fields("fax").Value = TableEnCour.Fields("fax").Value
      RS.Update
      TableEnCour.MoveNext
      Loop
      TableEnCour.Close
      DB.Close
      Set DB = Nothing
      Set TableEnCour = Nothing
      Screen.MousePointer = 0
      End Sub


      'Référence-VBAPoject : Microsolft DAO 3.6 Object Library
      'Access vers Excel
      'Module VBA à insérer > Set DBX = OpenDatabase(...)
      Sub CreateBaseBisAccess()
      Dim DB As Database, DBX As Database, sDestination As String, gExpDB, sTable, idxFrom, idxTo, idxFromName, sType, gsSQLDB
      Dim RS As DAO.Recordset, TableEnCour As DAO.Recordset
      Dim fldLoop As Field, tdfNew As TableDef

      On Error Resume Next
      Set DBX = OpenDatabase("E:\Documents and Settings\PAUL\Bureau\CLIENTS.MDB", False, gnReadOnly, "")
      Set TableEnCour = DBX.OpenRecordset("CLIENTS", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      Screen.MousePointer = 11
      'pointe sur la base XLS
      sDestination = "E:\Documents and Settings\PAUL\Bureau\DEMO\FICHIER\CLIENTS.XLS"

      Set DB = OpenDatabase(sDestination, False, gnReadOnly, "Excel 5.0;")

      Do Until TableEnCour.EOF
      Set RS = DB.OpenRecordset("select * FROM [CLIENTS] WHERE ((([CLIENTS$].[codeclient]) Like '" & TableEnCour.Fields(0).Value & "'))", dbOpenDynaset, dbSeeChanges, dbOptimistic)
      If RS.RecordCount = 0 Then
      RS.AddNew
      Else
      RS.Edit
      End If
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chaumeur
     
    Ce code a été validé par developpeur.com et d'autre site je m'étonne de votre professionnalisme ?
    Ce qui prouve que chez VBFrance la compétence n’est pas au rendez vous.
    Paul Ablasou
    0
  7. Eric
     
    met ta date en format yyyy/mm/dd il la convertira correctement qu'elle soit en français ou en anglais.
    0
    1. A_PAUL54
       
      'Sur toutes les bases de données
      sQL = "SELECT DISTINCTROW * FROM [N_P1] WHERE ((([naissance]) Between #" & Month([naissance]) & "/" & Day([naissance]) & "/" & Year([naissance]) & "# And #" & Month([naissance]) & "/" & Day([naissance]) & "/" & Year([naissance]) & "#))"

      https://www.118712.fr/sortir.html
      0
  8. incaout Messages postés 347 Date d'inscription   Statut Membre Dernière intervention   74
     
    Salut

    Utilises la fonction datepart() qui permet d'extraire les différentes parties d'une date donnée. Cette fonction prend comme 1er argument l'élément de la date que tu veux extraire (par exemple le mois ou le jour ou l'année) et en second la date sur laquelle faire l'extraction.

    Tu peux reconstituer une date française comme ceci

    dateFr = partdate("d",dateGb) & "/" & partdate("m",dateGb) & "/" & partdate("Y")

    A vérifier dans l'aide d'Access les constantes passées en premier paramètre, car je ne suis plus sur de mes souvenirs.

    Cdlt

    IC
    -1