cs_Arcanis
Messages postés18Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention26 juin 2008
-
22 nov. 2004 à 13:28
cs_Arcanis
Messages postés18Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention26 juin 2008
-
23 nov. 2004 à 10:28
Bonjour à toutes et à tous
J'ai une question précise concernant le format des dates en vb.
J'ai conçu une appli d'Agenda. Elle me permet de stocker des données liées à des dates.
L'appli utilise un objet "Calendrier". Cette appli fonctionne parfaitement sous windows Xp, mais j'ai pu constater un plantage très méchant sous windows 98.
Après investigations, j'ai constaté que le pc sous windows 98 possédait un formatage de date sur 6 caractères (jj/mm/aa) tandis que le pc sous windows Xp possédait un formatage de date sur 8 caractères (jj/mm/aaaa)
Le changement manuel de ce format permet un fonctionnement correct de l'application. En effet, l'objet vb ne pouvait pas gérer les dates sur 6 (Pour infos, il transformait 2004 en 41...)
Pour ne plus avoir de soucis, j'aimerais forcer ce format de date au lancement de mon appli.
Mais comment faire ????
Merci d'avance pour tout élément de réponse ou proposition éventuelle de correction...
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 22 nov. 2004 à 22:04
Private Const LOCALE_SSHORTDATE = &H1F
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function SetLocaleInfo Lib "kernel32" Alias "LocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Sub Command1_Click()
Dim sReturn As String
Dim r As Long
Dim LCID As Long
LCID = GetSystemDefaultLCID()
r = GetLocaleInfo(LCID, LOCALE_SSHORTDATE, sReturn, Len(sReturn))
If r Then
sReturn = Space$(r)
r = GetLocaleInfo(LCID, LOCALE_SSHORTDATE, sReturn, Len(sReturn))
If r Then
If Left$(sReturn, r - 1) <> "dd/MM/yyyy" Then
Call SetLocaleInfo(LCID, LOCALE_SSHORTDATE, "dd/MM/yyyy")
End If
End If
End If
End Sub