启动/设置/选项/背景
自动设置系统日期格式
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