Format date vb requete sql [Résolu]

Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009
- - Dernière réponse : 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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 222 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 222 internautes nous ont dit merci ce mois-ci

Commenter la réponse de modjoo
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 222 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
6
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
9 juin 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 222 internautes nous ont dit merci ce mois-ci

Commenter la réponse de modjoo