Format tanggal dalam pembuatan program sangat diperlukan,contoh jika
kita membuat program dengan fomat tanggal dd/mm/yyyy sedangkan di sistem
operasi format tanggalnya d/M/yy maka pada saat query tanggal di
program tidak akan menghasilkan data yang dicari. Sangat repot jika
setiap menjalankan program kita harus mengubahnya dulu di control panel -
regional and setting. Maka dari itu saya ingin berbagi pengalaman
untuk mengatur format tanggal windows dari vb nya langsung.
Copikan coding berikut di module vb (buat modul baru lalu copas)
'
' ModRegionalSetting.BAS
'
Option Explicit
Const LOCALE_SDECIMAL = &HE ' decimal separator
Const LOCALE_STHOUSAND = &HF ' thousand separator
Const LOCALE_SGROUPING = &H10 ' digit grouping
Const LOCALE_IDIGITS = &H11 ' number of fractional digits
Const LOCALE_ILZERO = &H12 ' leading zeros for decimal
Const LOCALE_SNATIVEDIGITS = &H13 ' native ascii 0-9
Const LOCALE_SCURRENCY = &H14 ' local monetary symbol
Const LOCALE_SINTLSYMBOL = &H15 ' intl monetary symbol
Const LOCALE_SMONDECIMALSEP = &H16 ' monetary decimal separator
Const LOCALE_SMONTHOUSANDSEP = &H17 ' monetary thousand separator
Const LOCALE_SMONGROUPING = &H18 ' monetary grouping
Const LOCALE_ICURRDIGITS = &H19 ' # local monetary digits
Const LOCALE_IINTLCURRDIGITS = &H1A ' # intl monetary digits
Const LOCALE_ICURRENCY = &H1B ' positive currency mode
Const LOCALE_INEGCURR = &H1C ' negative currency mode
Const LOCALE_SDATE = &H1D ' date separator
Const LOCALE_STIME = &H1E ' time separator
Const LOCALE_SSHORTDATE = &H1F ' short date format string
Const LOCALE_SLONGDATE = &H20 ' long date format string
Const LOCALE_STIMEFORMAT = &H1003 ' time format string
Const LOCALE_IDATE = &H21 ' short date format ordering
Const LOCALE_ILDATE = &H22 ' long date format ordering
Const LOCALE_ITIME = &H23 ' time format specifier
Const LOCALE_ICENTURY = &H24 ' century format specifier
Private Declare Function GetSystemDefaultLCID Lib "Kernel32" () As Long
Private Declare Function GetUserDefaultLCID Lib "Kernel32" () As Long
Private
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
Private Declare Function
SetLocaleInfo Lib "Kernel32" Alias "SetLocaleInfoA" (ByVal Locale As
Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
Public DataRegional(11) As String
Private Function GetRegional(nFormat As Long, Optional SetValue As String = -1) As String
Dim vNilai As String, vLcid As Long, Ret As Long
vLcid = GetUserDefaultLCID()
vNilai = Space$(vLcid)
Ret = GetLocaleInfo(vLcid, nFormat, vNilai, Len(vNilai))
If Ret Then
If SetValue <> "-1" Then
Call SetLocaleInfo(vLcid, nFormat, CStr(SetValue))
End If
GetRegional = Left$(vNilai, Ret - 1)
End If
End Function
Public Sub SimpenRegional()
DataRegional(0) = GetRegional(LOCALE_SDECIMAL)
DataRegional(1) = GetRegional(LOCALE_STHOUSAND)
DataRegional(2) = GetRegional(LOCALE_SCURRENCY)
DataRegional(3) = GetRegional(LOCALE_SMONDECIMALSEP)
DataRegional(4) = GetRegional(LOCALE_SMONTHOUSANDSEP)
DataRegional(5) = GetRegional(LOCALE_ICURRENCY)
DataRegional(6) = GetRegional(LOCALE_INEGCURR)
DataRegional(7) = GetRegional(LOCALE_SDATE)
DataRegional(8) = GetRegional(LOCALE_STIME)
DataRegional(9) = GetRegional(LOCALE_SSHORTDATE)
DataRegional(10) = GetRegional(LOCALE_SLONGDATE)
DataRegional(11) = GetRegional(LOCALE_STIMEFORMAT)
End Sub
Public Sub BalikinRegional()
Call GetRegional(LOCALE_SDECIMAL, DataRegional(0))
Call GetRegional(LOCALE_STHOUSAND, DataRegional(1))
Call GetRegional(LOCALE_SCURRENCY, DataRegional(2))
Call GetRegional(LOCALE_SMONDECIMALSEP, DataRegional(3))
Call GetRegional(LOCALE_SMONTHOUSANDSEP, DataRegional(4))
Call GetRegional(LOCALE_ICURRENCY, DataRegional(5))
Call GetRegional(LOCALE_INEGCURR, DataRegional(6))
Call GetRegional(LOCALE_SDATE, DataRegional(7))
Call GetRegional(LOCALE_STIME, DataRegional(8))
Call GetRegional(LOCALE_SSHORTDATE, DataRegional(9))
Call GetRegional(LOCALE_SLONGDATE, DataRegional(10))
Call GetRegional(LOCALE_STIMEFORMAT, DataRegional(11))
End Sub
Public Sub StandardRegionalSetting()
Call GetRegional(LOCALE_SDECIMAL, ",")
Call GetRegional(LOCALE_STHOUSAND, ".")
Call GetRegional(LOCALE_SCURRENCY, "Rp")
Call GetRegional(LOCALE_SMONDECIMALSEP, ",")
Call GetRegional(LOCALE_SMONTHOUSANDSEP, ".")
Call GetRegional(LOCALE_ICURRENCY, 2)
Call GetRegional(LOCALE_INEGCURR, 14)
Call GetRegional(LOCALE_SDATE, "/")
Call GetRegional(LOCALE_STIME, ":")
Call GetRegional(LOCALE_SSHORTDATE, "dd/MM/yyyy")
Call GetRegional(LOCALE_SLONGDATE, "dddd, d MMMM yyyy")
Call GetRegional(LOCALE_STIMEFORMAT, "HH:mm:ss")
End Sub
kemudian tinggal dipanggil di form, misalkan saat membuka form , seperti contoh berikut :
Private Sub Form_Load()
StandardRegionalSetting
End Sub
Misalkan
anda tidak ingin format tanggal yang pertama tidak berubah setelah
menjalan program maka pada saat form load format lama disimpan dengan
fungsi SimpenRegional(). Contoh :
Private Sub Form_Load()
SimpenRegional
StandardRegionalSetting
End Sub
Untuk mengembalikannya tinggal dipangggil saja fungsi BalikinRegional. Contoh :
Private Sub Form_Terminate()
BalikinRegional
End Sub
SELAMAT MENCOBA YA...
sumber :
http://www.ttaufikhidayat.com/berita101-Mengatur-Format-Regional-and-Setting-dengan-VB-6.html