Convertion de date

edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010 - 7 sept. 2010 à 14:43
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 13 sept. 2010 à 15:45
Bonjour ,

La date est au format JJ/MM/AAAA et je veux le convertir au format MM/JJ/AAAA
Comment faire Aidez moi

16 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2010 à 14:49
La date....
quelle date ?

a quelle fin souhaites tu effectuer une telle conversion ? (affichage, etc.)

a noter que pour stocker une date dans un format universel, rien de mieux que le format yyyy-mm-dd qui possède deux avantage :

il est universel est non ambigu...
et il permet de faire un tri alphabétique sur la date...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
7 sept. 2010 à 14:55
bonjour,
en faite lorsque j'exécute une requête sous accès avec pour critère la date le type de format que j'entre est le mm/jj/aaaa. alors que en vb 2005 le format est de type jj/mm/aaaa.
C'est pour ça que je veux convertire
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2010 à 15:06
tu semble confondre beaucoup de choses.

VB ne stocke pas jj/mm/aaaa.
Il stocke une donnée numérique, un délai écoulé depuis une date '0'

jj/mm/aaaa n'est qu'une représentation textuelle de la date comme une autre...

dans le cas d'une requete SQL, il est bien sur important de ne pas avoir la moindre ambigüité concernant les dates.

Il suffit donc d'utiliser un format de date universellement reconnu :

Faire, donc :

SELECT * FROM [Table] WHERE [MaDate] > #YYYY-MM-DD#


le symbole dièse permet de borner toute date dans une requete SQL, tout comme ' borne les Chaines...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
7 sept. 2010 à 15:17
je t'explique mon problème :

A partir d'une requête sql ,j'affiche les données dans un datagridview.c'est ainsi que j'ai écrit cela :
Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Projet de mise a jour\Basededonnées\Edson80.mdb;Jet OLEDB:System Database=system.mdw;") 'Définition de la connexion
Dim Mycommand1 As OleDbCommand = MyConnexion.CreateCommand() 'générer la connexion

Mycommand1.CommandText = " SELECT Fi_Bordereau.F_numbord, Fi_Bordereau.F_numclib, " & _
" Fi_Bordereau.F_nomclib, Fi_Bordereau.F_prenclib, " & _
"Fi_Bordereau.F_libelPb, Fi_Bordereau.F_coutPb, " & _
"Fi_Bordereau.F_partnonAPb, Fi_Bordereau.F_partAssrPb," & _
" Fi_Bordereau.F_NomTierceb, Fi_Bordereau.F_ModeRgltb, Fi_Bordereau.F_Dateb " & _
"FROM Fi_Bordereau " & _
" WHERE (((Fi_Bordereau.F_partnonAPb)<>0) AND ((Fi_Bordereau.F_Dateb) Between #" & TextBoxperiodedebut.Text & "# And #" & TextBoxperiodefin.Text & "#) AND ((Fi_Bordereau.F_numopb)=" & ComboCaisseop.Text & "));"

MyConnexion.Open()
Dim ColN0 As String 'déclarer un ensemble de ligne
Dim ColN1 As String 'déclarer un ensemble de ligne
Dim ColN2 As String 'déclarer un ensemble de ligne
Dim ColN3 As String 'déclarer un ensemble de ligne
Dim ColN4 As String 'déclarer un ensemble de ligne
Dim ColN5 As String 'déclarer un ensemble de ligne
Dim ColN6 As String 'déclarer un ensemble de ligne
Dim ColN7 As String 'déclarer un ensemble de ligne
Dim ColN8 As String 'déclarer un ensemble de ligne
Dim ColN9 As String 'déclarer un ensemble de ligne
Dim ColN10 As String 'déclarer un ensemble de ligne

Dim myReaderNA As OleDbDataReader = Mycommand1.ExecuteReader()
'----------------- Recherche de la donnée ----------------
Do While myReaderNA.Read()
ColN0 = myReaderNA.GetString(0) 'affiche la rubrique lue dans la zone liste
ColN1 = myReaderNA.GetString(1)
ColN2 = myReaderNA.GetString(2)
ColN3 = myReaderNA.GetString(3)
ColN4 = myReaderNA.GetString(4)
ColN5 = myReaderNA.GetValue(5).ToString
ColN6 = myReaderNA.GetValue(6).ToString
ColN7 = myReaderNA.GetValue(7).ToString
ColN8 = myReaderNA.GetString(8)
ColN9 = myReaderNA.GetString(9)
ColN10 = myReaderNA.GetDateTime(10).ToShortDateString
Me.DataGridViewNAssure.Rows.Add(ColN0, ColN1, ColN2, ColN3, ColN4, ColN5, ColN6, ColN7, ColN8, ColN9, ColN10)
mais lorsque je l'exécute j'ai ce message :
Aucune valeur donnée pour un ou plusieurs des paramètres requis.
je ne sais pas d'où provient l'erreur Aidez moi?
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2010 à 15:22
Colorisons ce code :
Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Projet de mise a jour\Basededonnées\Edson80.mdb;Jet OLEDB:System Database=system.mdw;") 'Définition de la connexion 
Dim Mycommand1 As OleDbCommand = MyConnexion.CreateCommand() 'générer la connexion 

Mycommand1.CommandText = " SELECT Fi_Bordereau.F_numbord, Fi_Bordereau.F_numclib, " & _ 
" Fi_Bordereau.F_nomclib, Fi_Bordereau.F_prenclib, " & _ 
"Fi_Bordereau.F_libelPb, Fi_Bordereau.F_coutPb, " & _ 
"Fi_Bordereau.F_partnonAPb, Fi_Bordereau.F_partAssrPb," & _ 
" Fi_Bordereau.F_NomTierceb, Fi_Bordereau.F_ModeRgltb, Fi_Bordereau.F_Dateb " & _ 
"FROM Fi_Bordereau " & _ 
" WHERE (((Fi_Bordereau.F_partnonAPb)<>0) AND ((Fi_Bordereau.F_Dateb) Between #" & TextBoxperiodedebut.Text & "# And #" & TextBoxperiodefin.Text & "#) AND ((Fi_Bordereau.F_numopb)=" & ComboCaisseop.Text & "));" 

MyConnexion.Open() 
Dim ColN0 As String 'déclarer un ensemble de ligne 
Dim ColN1 As String 'déclarer un ensemble de ligne 
Dim ColN2 As String 'déclarer un ensemble de ligne 
Dim ColN3 As String 'déclarer un ensemble de ligne 
Dim ColN4 As String 'déclarer un ensemble de ligne 
Dim ColN5 As String 'déclarer un ensemble de ligne 
Dim ColN6 As String 'déclarer un ensemble de ligne 
Dim ColN7 As String 'déclarer un ensemble de ligne 
Dim ColN8 As String 'déclarer un ensemble de ligne 
Dim ColN9 As String 'déclarer un ensemble de ligne 
Dim ColN10 As String 'déclarer un ensemble de ligne 

Dim myReaderNA As OleDbDataReader = Mycommand1.ExecuteReader()
'----------------- Recherche de la donnée ---------------- 
Do While myReaderNA.Read() 
ColN0 = myReaderNA.GetString(0) 'affiche la rubrique lue dans la zone liste 
ColN1 = myReaderNA.GetString(1) 
ColN2 = myReaderNA.GetString(2) 
ColN3 = myReaderNA.GetString(3) 
ColN4 = myReaderNA.GetString(4) 
ColN5 = myReaderNA.GetValue(5).ToString 
ColN6 = myReaderNA.GetValue(6).ToString 
ColN7 = myReaderNA.GetValue(7).ToString 
ColN8 = myReaderNA.GetString(8) 
ColN9 = myReaderNA.GetString(9) 
ColN10 = myReaderNA.GetDateTime(10).ToShortDateString 
Me.DataGridViewNAssure.Rows.Add(ColN0, ColN1, ColN2, ColN3, ColN4, ColN5, ColN6, ColN7, ColN8, ColN9, ColN10)



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2010 à 15:29
Il est important de borner les chaines de caractères dans ta requete.

je pense à ComboCaisseop.Text qui ne contient pas, je pense de numérique, bien que non borné...

du coup, Access le prend pour le nom d'un champs ou d'un paramètre ; mais auquel tu n'aurais pas assigné de valeur.

Les dates de ton Between doivent également être formatées yyyy-mm-dd.

Enfin, il n'est pas nécessaire de noter systématiquement le nom de ta table :

"SELECT F_numbord, F_numclib, F_nomclib, F_prenclib, F_libelPb, F_coutPb, F_partnonAPb, F_partAssrPb, F_NomTierceb, F_ModeRgltb, F_Dateb " & _ 
"FROM Fi_Bordereau " & _ 
"WHERE F_partnonAPb <>0  AND " & _
"      F_numopb='" & ComboCaisseop.Text & "' AND " & _
"      F_Dateb BETWEEN #" & TextBoxperiodedebut.Text & "# AND #" & TextBoxperiodefin.Text & "# " 


NB. Je n'ai pas ici mis le code de formatage des dates.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
7 sept. 2010 à 16:13
bonjour
j'ai essayé d'exécuter la requête étape par étape.
pour F_numopb, il marche très bien, Pour F_partnonAPb aussi.
mais au niveau de F_Dateb pas de reponse .
Vois tu le problème
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
7 sept. 2010 à 17:01
bonsoir,
Vous voulez dire quoi par formater une date ?

Merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 sept. 2010 à 19:06
la mettre sous ce format :

yyyy-mm-dd

je n'ai pas vb installe sous la main, mais en gros, ce doit etre :

(partant d'une variable de type Date ou DateTime...)

maDate.ToString("yyyy-MM-dd")

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
9 sept. 2010 à 18:45
Bonsoir,

Dim date1 As DateTime = DateTimePickerCaissePD.Text
date1.ToString("yyyy/MM/dd")

c'est ainsi que le formatage se fait mais il ne marche pas toujours pas de réponse
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 sept. 2010 à 20:27
"pas toujours..."

dans quels cas est-ce que cela fonctionne ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
10 sept. 2010 à 07:42
Dim date1 As DateTime = DateTimePickerCaissePD.Value
date1.ToString("yyyy/MM/dd")

la ca marche

si tu met .Text , ca creer une execption impossible de transformer un string en datetime

ou autre possibilité

Dim date1 As DateTime = DateTime.Parse(DateTimePickerCaissePD.Text)
date1.ToString("yyyy/MM/dd")
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 sept. 2010 à 09:52
logique... pour convertir une date et la formater, il faut bien une date ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
13 sept. 2010 à 10:49
Bonjour,
Voici ce que j'ai fait finalement et il marche bien .Voici mon bout de code

Dim d1 As String
Dim d2 As String
Dim date1 As DateTime = DateTimePickerCaissePD.Value
d1 = date1.ToString("yyyy/MM/dd")
Dim date2 As DateTime = DateTimePickerCaissePD.Value
d2 = date2.ToString("yyyy/MM/dd")
Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Projet de mise a jour\Basededonnées\Edson80.mdb;Jet OLEDB:System Database=system.mdw;") 'Définition de la connexion
Dim Mycommand1 As OleDbCommand = MyConnexion.CreateCommand() 'générer la connexion
Mycommand1.CommandText = " SELECT Fi_Bordereau.F_numbord, Fi_Bordereau.F_numclib, " & _
" Fi_Bordereau.F_nomclib, Fi_Bordereau.F_prenclib, " & _
"Fi_Bordereau.F_libelPb, Fi_Bordereau.F_coutPb, " & _
"Fi_Bordereau.F_partnonAPb, Fi_Bordereau.F_partAssrPb," & _
" Fi_Bordereau.F_NomTierceb, Fi_Bordereau.F_ModeRgltb, Fi_Bordereau.F_Dateb " & _
"FROM Fi_Bordereau " & _
" WHERE (((Fi_Bordereau.F_Dateb) Between #" & d1 & "# And #" & d2 & "#));"

Merci pour votre soutien et mes salutation à vous
0
edson44 Messages postés 74 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 15 septembre 2010
13 sept. 2010 à 12:34
Bonjour,
Maintenant je voudrais afficher les monétaires dans un textbox ?
Exemple :Lorsqu'on a 1600,je voudrais qu'il s'affiche 1 600.les centaines, les dizaines et les unités bien séparés.
Merci de votre compréhension
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 sept. 2010 à 15:45
toujours pas copain avec la doc, a ce que je vois...

msdn.microsoft.com/en-us/library/dwhawy9k.aspx


Format specifier

Name

Description

Examples

"C" or "c"

Currency

Result: A currency value.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by System.Globalization.NumberFormatInfo.

More information: The Currency ("C") Format Specifier.

123.456 ("C", en-US) -> $123.46

123.456 ("C", fr-FR) -> 123,46 €

123.456 ("C", ja-JP) -> ¥123

-123.456 ("C3", en-US) -> ($123.456)

-123.456 ("C3", fr-FR) -> -123,456 €

-123.456 ("C3", ja-JP) -> -¥123.456


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous