Format date vb requete sql [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009
-
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009
-
Bonjour,

J'ai un petit soucis de formattage de date dans excel. Suite à une lecture de données d'une base sql, j'ai des dates qui se cadrent à droite d'autres à gauche. Certaines données sont saisies d'autres importées.
Comment puis-je résoudre ce problème ?

Merci d'avance de votre aide

Voici le code :

 Sub SAISIE()
'Déclaration de la variable de connexion
Dim cnx As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim requete As String
Dim requete2 As String
Dim numeroori As Integer


'UserForm1.Show


count = 1
Set cnx = New ADODB.Connection




'Définition de la chaîne de connexion
cnx.ConnectionString = "UID=user;PWD=password;DRIVER={SQL Server};Server=nom serveur;Database=database;"


'Efface les données
'Cells.Select
'Selection.ClearContents
Rows("2:2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select


'Ouverture de la base de données
cnx.Open


requete = "SELECT From WHERE  ORDER BY "


Set rs = cnx.Execute(requete)
Do While rs.EOF = False
count = count + 1
Cells(count, 1) = Trim(rs.Fields(0))
Cells(count, 2) = Trim(rs.Fields(1))
Cells(count, 3) = Trim(rs.Fields(2))
Cells(count, 4) = Trim(rs.Fields(3))
Cells(count, 5) = Trim(rs.Fields(4))
Cells(count, 6) = Trim(rs.Fields(5))
Cells(count, 7) = Trim(rs.Fields(6))
Cells(count, 8) = Trim(rs.Fields(7))
Cells(count, 9) = Trim(rs.Fields(8))
Cells(count, 10) = Trim(rs.Fields(9))




rs.MoveNext
DoEvents
Loop


rs.Close
cnx.Close

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
C'est un problème d'affichage, pas de programme.
Sélectionne toutes les cellules sensées recevoir des dates et formate les ... au format date.
Cela peut ne pas fonctionner si, dans ta DB, les champs qui contiennent des dates sont déclarés en Texte et pas en DateGénéral.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009

Oui, mais je me suis mal exprimé. En fait, le problème est plus compliqué que ça laisse croire...
j'ai des dates au format dd/mm/yyyy et mm/dd/yyyy.

Comment puis-je résoudre ce problème ?

merci d'avance
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Re
D'où proviennent les dates au format local (fr) ?
D'où proviennent les dates au format général US ?
Une fois que tu auras isolé d'où vient la mauvaise conversion de type de date, tu sauras où agir.

Dans les DB, les dates sont stockées au format US.
Voir DateValue pour tenter de résoudre ce problème lors de l'insertion de date dans les DB

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009

Bonjour,

Je pense avoir trouvé la solution, il suffit de rajouter dans le select : substring(CONVERT(char(12),'Nom du champ',103),1,2)+substring(CONVERT(char(12),'Nom du champ',103),4,2)+substring(CONVERT(char(12),'Nom du champ',103),7,4)

Merci à tous