The DateCheck function is useful when you use the Masked Edit control for entering the date according to the system format. Some countries use the MM/DD/YYYY format, and other countries, like India, use the DD/MM/YYYY format. Instead of hard-coding the Masked Edit controls format as well as mask properties, use this function to set the required date format according to the control panel settings.In the General declaration section of the module, define this:
Declare Function GetProfileString Lib _ "Kernel" ( Byval Sname$, ByVal Kname$, Byval Def$, _ Byval Ret$, Byval Size% ) as integerglobal datemask as variantglobal dateformat as variant Sub DateCheck() Dim Strsecname as string Dim Strkeyname as string Dim Varsuccess as variant Dim Strretdate as string Dim Strretsep as string Dim Strchar as string * 1 Strsecname = "Intl" Strkeyname = "sShortDate" Strretdate = string$(11,0) Varsuccess = GetProfilestring_ (Strsecname,Strkeyname,"",Strretdate,_ Len(Strretdate)) Strsecname = "Intl" Strkeyname = "sDate" Strretsep = String$(2,0) Varsuccess = GetProfileString_ (Strsecname,Strkeyname,"",_Strretsep,Len(Strretsep)) Strretsep = Left$(strretsep,1) Strchar = Ucase$(Left$(strretdate,1)) datemask = "##" & Strretsep & "##" & Strretsep & "####" Select case strchar case "D" : dateformat = "DD" _ & strretsep & "MM" & strretsep & "YYYY" case "M" : dateformat = "MM" _ & strretsep & "DD" & strretsep & "YYYY" case "Y" : datemask = "####" _ & Strretsep & "##" & strretsep & "##" dateformat = "YYYY" & _ strretsep & "MM" & strretsep & "DD" End selectEnd Sub
In the Form_Load event, call the DateCheck procedure to get the current date format, and assign format and mask properties of the Masked Edit control:
Sub Form_Load() DateCheck ' Call the datecheck procedure Mskdd.format = dateformat Mskdd.mask = datemaskEnd Sub