cs_lafrite44
Messages postés10Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention30 janvier 2006
-
4 janv. 2006 à 15:08
cs_lafrite44
Messages postés10Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention30 janvier 2006
-
30 janv. 2006 à 18:33
Bonjour et bonne années 2006 à toutes et tous !
J'ai un problème sous VBA (petite précision : je débute tout juste) :
J'ai créer une base de données sous Excel que je souhaite modifier (ajout, suppression et modification de fiche) via mon petit programme VBA.
Dans cette base de données, il y a la date de naissance des personnes. Or, quand je veux créer une nouvelle fiche (ou même modifier) la nouvelle date que j'entre dans la textbox par exemple 01/12/2005 (1er décembre 2005) se transforme en 12/01/2005 sur Excel !!!
Et ce n'est pas un problème de format de date car d'après ce que j'ai compris en faisant plusieurs manip', c'est VB qui ne comprend les dates que sous le format mm/jj/aaaa.
Je ne sait plus quoi faire pour lui faire comprendre les dates au format français.
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 6 janv. 2006 à 21:24
bonsoir,
sinon tu peux faire de cette façon :
range("B2").value = Format (txtdate.text, "mm/dd/yyyy")
je sais c'est le format anglais et aussi illogique que ça paraisse, ça fonctionne !
j'ai même faillie essayer toute les dates du calendrier tellement c'est illogique
donc à toi de voir si tu préfère une fonction (qui fonctionne) ou une simple ligne de code....
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 4 janv. 2006 à 16:33
bonjour,
sql signifie en fait requête sql c'est ce qui te permet de récupérer des données dans une base de données
exemple d'une requête sql qui permet de rechercher des données concernant une personne (txtnom) et de modifier la date de naissance de cette personne :
'ouverture de la table et recherche de la ligne concernant la personne par son nom
table.open"select*from [etat_civil]where[nom]='"&txtnom.text&"'",base,adopendynamic,adlockoptimistic
'modification de la date de naissance de la personne recherchée
base.Execute "update [etat_civil] set [date_naissance]= #" & Format(txtdate1.Text, "mm / dd / yyyy") & "# where [nom]= '" & txtnom.text & "'"
base c'est la variable déclarée pour la base de donnée
table c'est la variable déclarée pour la création du recordset qui va contenir les données recherchées dans une table
etat_civil c'est le nom de la table qui contient toutes les données des personnes
txtnom c'est le nom de la textbox qui va recevoir le nom de la personne pour rechercher les données la concernant
et txtdate c'est le nom de la textbox ou tu va inscrire la date de naissance
ce code fonctionne en vb6 en vbA je ne suis pas sure par contre il ne faut pas oublier de créer la connection
si tu n'as pas tout compris n'hésites pas
Salut
Doro
Vous n’avez pas trouvé la réponse que vous recherchez ?
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 4 janv. 2006 à 17:09
Oulà doro, on est dans excel là. oublions les requetes sql.
Ce problème est un problème récurent sur les dates dans vba et j'ai pas de solution miracle. Néanmoins, le problème peut se contourner de plusieurs manières.
1 : utiliser un controle calendrier qui te renverra une variable date. (ya d'autres controles comme le datepicker ...)
2 : décomposer les infos de la textbox et recomposer une date
3 : coller la date dans une cellule et la reprendre (bizarement, ça marche)
4 : utiliser des combobox et composer une date
pour finir, évite de retraiter la variable date, et travaille plutôt sur textbox.text.
En effet, tu as surement remarqué que l'inversion jour/mois ne se fait que pour les 12 premiers jours du mois ensuite, vba reconnais bien les jours.
as tu essayé un cdate(textboxdate.text) pour voir ce que ça ressort
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 4 janv. 2006 à 19:08
re,
kalobit=> j'avais spécifié que c'était un code vb6 et que pour vba je n'était pas sure
mais c'était aussi pour lui expliquer ce que voulait dire sql et lui donner un exemple
et au cas où si ça pouvait l'aider , personnellement excel c'est pas mon truc .....
cs_lafrite44
Messages postés10Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention30 janvier 2006 5 janv. 2006 à 08:27
bon, bon,
j'ai essayé avec textboxdate.text mais vba ne reconnait pas cette synthaxe.
j'ai aussi essayé la manip' 3, c'est à dire de mettre textbox.text dans une cellule puis de remettre cette même cellule dans une autre mais ça revient au même... comprends pas.
J'aurais voulu donc savoir comment décomposer les infos de textbox pour la recomposer dans une cellule ?
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 5 janv. 2006 à 13:57
ok, voilà la sub à utiliser
A toi de voir si tu préfère utiliser une fonction
Sub TextBoxToDate()
Dim madate As String, jour As Integer, mois As Integer, annee As Integer
Dim datefinale As Date
madate = tontextbox.Text
If Not madate Like "##/##/####" Then
MsgBox "Le format de date est incorrecte" & vbCrLf & "Veuillez utiliser le format jj/mm/aaaa"
Exit Sub
End If
jour = Left(madate, 2)
annee = Right(madate, 4)
mois = Mid(madate, 4, 2)
datefinal = DateSerial(annee, mois, jour)
MsgBox datefinal
end sub