Vậy có cách nào để khi mình mở phần mềm lên nó sẽ tự kiểm tra ngày hệ thống để trả về định dạng dd/mm/yyyy không ?
Đừng bảo mình chuyển trong Control Panel nhé ,vì như thế cứ mang pm đi máy nào cũng phải chỉnh lại mất công lắm,mà không pro
Đáp: ( dongnamnb- Danketoan)
Bạn có thể giải quyết bằng hàm API. Cách làm như sau:
1. Copy đoạn code sau vào 1 module
Option Compare DatabaseỞ sự kiện Form_Load của form startup của bạn, bạn gọi thủ tục SetSysDate như sau:
Public Const LOCALE_SSHORTDATE = &H1F
Public Const WM_SETTINGCHANGE = &H1A
'same as the old WM_WININICHANGE
Public Const HWND_BROADCAST = &HFFFF&
Public Declare Function SetLocaleInfo Lib "kernel32" Alias _
"SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As _
Long, ByVal lpLCData As String) As Boolean
Public Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetSystemDefaultLCID 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
Sub SetSysDate()
Dim lLocal As Long
Dim Length As Long
Dim dwLCID As Long
Dim Buf As String * 1024
On Error GoTo SetSysDate_Error
lLocal = GetSystemDefaultLCID()
Length = GetLocaleInfo(lLocal, LOCALE_SSHORTDATE, Buf, Len(Buf))
If Not Left$(Buf, Length - 1) = "dd/MM/yyyy" Then
dwLCID = GetSystemDefaultLCID()
If SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "dd/MM/yyyy") = False Then
MsgBox "Khong doi duoc dinh dang ngay he thong.", 64, "Thong bao"
Exit Sub
End If
PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
End If
Exit Sub
SetSysDate_Error:
MsgBox "Unexpected Error No. " & Err.Number & _
" in procedure SetSysDate of Form Main. " _
& vbCrLf & vbCrLf & Err.Description, 64, "Dish Care Centre"
End Sub
Private Sub Form_Load()Như vậy mỗi lần chạy chương trình của bạn thì định dạng ngày hệ thống sẽ tự động chuyển thành dạng dd/mm/yyyy
SetSysDate
End Sub
____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.co.cc/forum
Sao chương trình báo lỗi ngay thủ tục gọi hàm SetSysDate. Lỗi như sau :
Trả lờiXóa"Sub or function not defined". Xin chỉ giáo. Cám ơn nhiều!
Có lẽ thủ tục SetSysDate bị khai báo là Private nên mới có hiện tượng trên. Bạn khai báo lại thành public thử.
Trả lờiXóaNó báo lỗi "Type-declaration character doesn't match declared data type" tại hàm left$
Trả lờiXóaBạn thử bỏ dấu $
Trả lờiXóavay minh viet doan code nay vao cho nao trong access ji,minh cung gap phai truong hop nay khi lam acess,xin thinh~ giao
Trả lờiXóaThủ thuật này rất hay, chương trình đã chạy tốt trên máy của mình. Xin hỏi có thủ thuật nào tương tự để set dấu phân các và dầu thập phân: Ví dụ: Mặc định dấu phân cách nhóm là "," và dấu thập phân: "." (theo hệ Mỹ). Vậy có thủ thuật nào để sét về tương ứng: "." và ",". Ths
Trả lờiXóasao mình làm ko dc nhỉ
Trả lờiXóavậy muốn đổi thành yy/mm/dd thì sửa đoạn code lại như thế nào bạn. Vui lòng chỉ giúp
Trả lờiXóamình sửa đoạn code để set hệ thống theo định dạng yy/mm/dd thì như thế nào, bạn vui lòng chỉ giúp.
Trả lờiXóaThủ thuật này rất hay, chương trình đã chạy tốt trên máy của mình.
Trả lờiXóaXin hỏi có thủ thuật nào tương tự để set dấu phân các và dầu thập phân:
Ví dụ: Mặc định dấu phân cách nhóm là "," và dấu thập phân: "." (theo hệ Mỹ).
Vậy có thủ thuật nào để sét về tương ứng: "." và ",". Thanks.
thucnv@yahoo.com