

启动/设置/选项/背景
自动设置系统日期格式
2015-01-13 23:25:11
有时经验软件中 如果系统日期默认格式不是yyyy-MM-DD, 就会报错.
可以手工在 控制面板-->区域和语言 日期格式里设置 为yyyy/mm/dd 或 yyyy-mm-dd
但也可用代码 自动设置系统日期格式
'===============================================================================-----天鸣科技--->>>>>>>>
'-函数名称: gt_ChkDateFormat
'-功能描述: 自动设置系统日期格式
'-输入参数: 参数1:rblnSetDate Long 设置日期,如果为否则只是查看日期格式是否正确而不作设置
'-
'-返回参数: Boolean 是否成功
'-使用示例: rblnSetDate True
'-相关调用:
'-使用注意:
'-兼 容 性: 97,2000,XP,2003 compatible
'-参考资料: 网上资料
'-作 者: 王宇虹 修改:王宇虹
'-创建日期; 2002-08-26 更新日期: 2002-08-28 ,2006-10-15
'-图 解:
'===============================================================================--<>>>>>
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
Private Const LOCALE_SLONGDATE = &H20
Private Const LOCALE_SSHORTDATE = &H1F
Private Const LOCALE_SDATE = &H1D
Private Const LOCALE_STIME = &H1E
Public Function gt_ChkDateFormat(Optional rblnSetDate As Boolean = False) As Boolean
Dim lngLocale As Long
If Len(Date) <> 10 Or Mid(Date, 5, 1) <> "/" Then
If rblnSetDate Then
lngLocale = GetSystemDefaultLCID()
'If lngLocale = 2052 Then '判断繁体 简体等
SetLocaleInfo lngLocale, LOCALE_SSHORTDATE, "yyyy-MM-dd"
SetLocaleInfo lngLocale, LOCALE_SDATE, "/"
' End If
gt_ChkDateFormat = True
gt_MessageBox "日期格式不对,系统自动将 控制台-->地区选项(区域设置) 中日期的格式修改为:YYYY/MM/DD"
Else
gt_ChkDateFormat = False
gt_MessageBox "日期格式不对,请在 控制台-->地区选项(区域设置) 中修改日期的格式为:YYYY/MM/DD"
DoCmd.Quit
End If
Else
If Len(Format(#1/1/2006#, "Short Date")) <> 10 Then
If rblnSetDate Then
lngLocale = GetSystemDefaultLCID()
SetLocaleInfo lngLocale, LOCALE_SSHORTDATE, "yyyy-MM-dd"
SetLocaleInfo lngLocale, LOCALE_SDATE, "/"
gt_ChkDateFormat = True
gt_MessageBox "日期格式不对,系统自动将 控制台-->地区选项(区域设置) 中日期的格式修改为:YYYY/MM/DD"
Else
gt_MessageBox "日期格式不对,请在 控制台-->地区选项(区域设置) 中修改日期的格式为:YYYY/MM/DD"
gt_ChkDateFormat = False
DoCmd.Quit
End If
Else
gt_ChkDateFormat = True
End If
End If
End Function