Format date vb requete sql

Résolu
modjoo Messages postés 6 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 9 juin 2009 - 10 juil. 2008 à 10:59
modjoo Messages postés 6 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 9 juin 2009 - 15 juil. 2008 à 10:20
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
10 juil. 2008 à 13:01
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)
3
modjoo Messages postés 6 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 9 juin 2009
10 juil. 2008 à 15:59
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
11 juil. 2008 à 11:24
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)
3
modjoo Messages postés 6 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 9 juin 2009
15 juil. 2008 à 10:20
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
3
Rejoignez-nous