Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

Hiển thị các bài đăng có nhãn DateTime. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn DateTime. Hiển thị tất cả bài đăng

1/7/12

Nhập ngày tháng thông qua Calendar Control

Nguồn:Nhập ngày tháng thông qua Calendar Control 
Tác giả:Noname

 

Calendar control là một ActiveX control cho phép bạn nhập ngày tháng vào Access một cách chính xác, nhanh chóng và hiệu quả. Cách làm như sau:

1. vẽ 1 textbox đặt tên là txtFromdate
2. Vẽ 1 button
3. Click vào nút more control ở toolbox, tìm và chọn Calendar Control 11.0, Vào form, thả control này vào chỗ bạn muốn. Vào Properties đặt name của đối tượng này là Calendar2 và thuộc tính visible là No.

17/9/10

Gọi Form Chờ khi thực hiện tập lệnh !

Hỏi:Em đặt một nút command button, trong đó chạy một số câu lệnh và phải mất khoảng 5 phút.
Trong quá trình thực hiện lệnh, em muốn hiện lên màn hình dòng chữ:
" Đang thực hiện công việc, xin vui lòng chờ trong giây lát"

10/7/10

Tính số ngày trong tháng

Hỏi: Tôi muốn biết trong tháng có bao nhiêu ngày thì làm thế nào
Đáp: 
Hàm đếm số ngày trong tháng:

Code:
Function totalDayOfMonth(m As Integer, y As Integer) As Integer

totalDayOfMonth = Day(DateSerial(y, m + 1, 0))
End Function
m: tháng cần theo dõi
y: năm cần theo dõi
Kết quả trả về số ngày trong tháng cần theo dõi

Ví dụ:

Private Sub Command0_Click()
Dim m As Integer, y As Integer
m = 2
y = 2010
MsgBox "thang " & m & " nam " & y & " co " & totalDayOfMonth(m, y) & " ngay "
End Sub

kết quả là 28 ngày!
Xem demo Download

____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.co.cc/forum

30/6/10

Xác định số thứ trong một khoảng thời gian

Có một bạn hỏi Muốn xác định số ngày thứ (nhật, 2, 3,4...) trong một khoảng thời gian thì làm thế nào?
Trả lời:
Bạn có thể vào khung soạn code, nhập đoạn code sau vào:
Function demngay(Startdate As Date, Enddate As Date, dayinweek As Integer) As Integer
Dim songay As Integer ' so ngay trong khoang tg do
Dim s As Date 'ngay xem xet
Dim ngay As Integer 'so ngay can tim luy ke
songay = Enddate - Startdate
ngay = 0
s = Startdate
For i = 0 To songay
        If Weekday(s) = dayinweek Then
         ngay = ngay + 1
        End If
        s = s + 1
Next i
demngay = ngay
End Function
Chú ý: tham số day inweek
1:chủ nhật
2:thứ 2
3 thứ 3
4: thứ tư
5: thứ 5
6: thứ 6
7: Thứ 7

Bây giờ bạn có thể gọi từ 1 nút nhấn với tham số truyền từ 2 textbox txtTungay, txtDenngay và 1 combobox tùy biến thứ muốn tìm: cbbThu

Private Sub Command6_Click()
Dim t As Integer
t = demngay(Me.txtTungay, txtDenngay, cbbThu)
MsgBox " Tu ngay " & txtTungay & " den ngay " & txtDenngay & " Co " & t & " ngay thu " & cbbThu
End Sub

Các bạn xem demo Taixuong

____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.com/forum

3/2/10

Set Mặc Định định dạng ngày tháng

Hỏi: Nếu như trong phần mềm của mình định dạng Format cho trường Date là dd/mm/yyyy mà ngày tháng hệ thống là mm/dd/yyyy thì sẽ dẫn đến lẫn lộn ngày tháng khi nhập vào CSDL .Nếu như mình nhập 12/06/2009 thì nó sẽ hiển thị 6/12/2009.
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

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
Ở sự kiện Form_Load của form startup của bạn, bạn gọi thủ tục SetSysDate như sau:
Private Sub Form_Load()

SetSysDate

End Sub
 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
____________________________________________________________________________________
Thảo luận thêm: http://thuthuataccess.co.cc/forum

4/1/10

Tìm ngày có thứ đầu tiên trong tháng

Hỏi: Công ty tôi họp thường kỳ vào thứ 3 tuần đầu tiên của tháng. Xin giúp 1 đoạn code để tôi biết chính xác thứ 3 đầu tiên của tháng là ngày mấy!

5/12/09

Đăng nhập sai 5 lần chờ 15 phút

Question :Thấy các diễn đàn chỉ cho đăng nhạp 5 lần,nếu sai thì 15 phút sau mới cho đang nhập lại.Thế thì mình nghĩ ra ý tương rằng,cái này chúng ta có thể áp dụng trong Form đăng nhập được không.Điều kiện:
 Đăng nhập sai 5 lần thì dù có đăng nhập đúng đi chăng nữa cũng không vào đuợc CSDL.

10/11/09

Tính số ngày sử dụng chương trình

Mình có một chương trình Access tự viết nhỏ, mình muốn chương trình tính được số ngày sử dụng hoặc số lần đã mở chương trình nhưng không phụ thuộc vào ngày của hệ thống

Trích:
Nguyên văn bởi hungtano Trả lời
bạn tạo 1 table, tạo field có tên là userTime, kiểu number

Khi user mở starup form, ở sự kiện open của form, bạn viết 1 đoạn code mở table trên và edit thêm sự kiện như sau:

Private Sub Form_Open(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("T2")
With rs
.MoveFirst
.Edit
!UserTime = !UserTime + 1
.Update
End With
rs.Close
End Sub
[right] Nguồn Từ : Khoa Học Phổ Thông.
Website : http://www.khoahocphothong.net [/right]
Thảo luận thêm: http://thuthuataccess.com/forum