Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

将系统日期自动改为短日期的代码,通过代码将操作系统日期自动改为YYYY-MM-DD的格式

时 间:2022-10-17 08:01:25
作 者:叶海峰   ID:31  城市:广州
摘 要:将系统日期自动改为YYYY-MM-DD的代码。
正 文:

步骤1:在标准模块中写如下代码:

Option Compare Database
Option Explicit

Public Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
'设置短日期格式
Public Const LOCALE_SSHORTDATE = &H1F
Public Const LOCALE_SDATE = &H1D


步骤2:在一个窗体中,创建一个按钮,按钮名称命名为:cmdChangeDate,在单击事件中写如下代码:

Sub cmdChangeDate_Click()

    Dim llocal As Long
    Dim sa     As String
    Dim lOk    As Long
    Dim setlocalinfo As Variant
    On Error GoTo ErrShow
    sa = Space(20)
    llocal = GetUserDefaultLCID()
    lOk = GetLocaleInfo(llocal, LOCALE_SSHORTDATE, ByVal sa, 20)
    If Trim(sa) <> "yyyy-MM-dd" Then
        MsgBox "您的系统日期不是(YYYY-MM-DD)格式,点击确定,自动更改格式"
        'If MsgBox("您的系统日期不是(YYYY-MM-DD)格式,强烈建议您将它修改成该格式," & Chr(10) _
         & "否则软件可能会出现运行障碍!" _
         & Chr(10) & Chr(10) & "点击'是'将自动为您修改。", vbQuestion + vbYesNo, "忠告") = vbYes Then
        sa = "yyyy-MM-dd"
        llocal = GetUserDefaultLCID()
        SetLocaleInfo llocal, LOCALE_SSHORTDATE, ByVal sa
        'End If
    End If
    sa = Space(2)
    lOk = GetLocaleInfo(llocal, LOCALE_SDATE, ByVal sa, 2)
    If Trim(sa) <> "-" Then
        sa = "-"
        lOk = SetLocaleInfo(llocal, LOCALE_SDATE, ByVal sa)
    End If
    setlocalinfo = True
    Exit Sub
ErrShow:
    MsgBox "系统日期不能自动设置为(2002-01-01)的格式" & vbCrLf & "请用手工先把系统日期改为如(2002-01-01)的格式,再运行本系统!"
End Sub
示例下载

点击下载此附件



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助