Rechercher : dans
Par :

[Access] pb format date SQL et VBA

Dernière réponse le 4 oct 2009 à 15:39:34 durahsel, le 24 sep 2009 à 14:22:47 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [Access] pb format date SQL et VBA » dans :
VBScript - Les fonctions de date et de temps VoirLes fonctions de date et de temps Fonction Description Date Retourne la date du système DateAdd(interval, number, date) Ajoute un intervalle de temps (interval) à une...
Fichier DAT VoirFormat DAT Un fichier DAT Un fichier .dat est un fichier de données (.DAT signifie data). En général, il s'agit d'un fichier binaire, créé par un programme et utilisable uniquement par ce programme, ce qui signifie qu'il n'est pas censé être ouvert...

1

incaout, le 25 sep 2009 à 19:06:59

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

Répondre à incaout

2

durahsel, le 28 sep 2009 à 12:42:03

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 !

Répondre à durahsel

3

A_PAUL54, le 28 sep 2009 à 15:08:06

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]) & "#))"

Répondre à A_PAUL54

4

durahsel, le 28 sep 2009 à 19:16:49

Merci à tous

Répondre à durahsel

5

A_PAUL54, le 28 sep 2009 à 21:22:06

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).

Répondre à A_PAUL54

6

chaumeur, le 2 oct 2009 à 21:19:50

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

Répondre à chaumeur

7

chaumeur, le 2 oct 2009 à 21:19:55

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

Répondre à chaumeur

8

 chaumeur, le 4 oct 2009 à 15:39:34

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

Répondre à chaumeur