[Access] pb format date SQL et VBA

Fermé
durahsel Messages postés 66 Date d'inscription samedi 12 août 2006 Statut Membre Dernière intervention 2 mars 2010 - 24 sept. 2009 à 14:22
 A_PAUL54 - 7 mai 2010 à 16:25
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,
A voir également:

7 réponses

durahsel Messages postés 66 Date d'inscription samedi 12 août 2006 Statut Membre Dernière intervention 2 mars 2010 11
28 sept. 2009 à 12:42
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
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
durahsel Messages postés 66 Date d'inscription samedi 12 août 2006 Statut Membre Dernière intervention 2 mars 2010 11
28 sept. 2009 à 19:16
merci à tous
0
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
met ta date en format yyyy/mm/dd il la convertira correctement qu'elle soit en français ou en anglais.
0
'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
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 sept. 2009 à 19:06
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