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

10/30/10

Thủ Thuật Lưu Vết Truy Cập Chương trình (Audit Trail)

'Writer By: Noname
'Site: http://thuthuataccess.com - Vui long giu nguyen site va tac gia neu ban dung hoac share module nay

------------------------------------------------------------------
Đầu tiên, Bạn thiết kế một table tblAuditTrail(Times,UserID,UserName,ComputerName,module,Action)
Tạo một đoạn chương trình con như sau trong một module mới

10/16/10

Tạo số chứng từ tăng dần và reset lại theo yêu cầu người dùng

Writer: Noname
site: http://thuthuataccess.com
Vui lòng giữ nguyên thông tin tác giả và site nếu bạn dùng hoặc chia sẻ thủ thuật này

-------------------------------------
Trong thực tế, một số chứng từ yêu cầu có số tăng dần và reset lại, cụ thể là các sổ thu , chi. Các quyển hóa đơn bán lẻ...
thủ thuật này cho phép chúng ta tạo ra các số chứng từ tăng dần và reset lại 1 khi nhấn vào nút reset.

Tạo số chứng từ tự tăng dần và reset lại mỗi khi người dung yêu cầu

Chúng ta có 1 table lưu các số chứng từ như sau:
Tblhoadon(STT,soHD,ngay, donvi,…)

10/14/10

In chứng từ nhiều hơn 10 record thì chuyển sang bảng kê

Tác giả: Noname
Site: http://thuthuataccess.com
-----------------------------------------------------
Vui lòng giữ nguyên tên và site nếu bạn dùng nội dung trong bài viết này
Giả sử bạn có table ( hoặc query) tên là table1.
Giờ bạn muốn in 1 chứng từ với điều kiện sau:
- Ít hơn 10 dòng, in bình thường
- Nhiều hơn 10 dòng, in chứng từ với dòng chữ: Chi tiết trong bảng kê . Đồng thời cho in luôn bảng kê!

Như vậy ta cần có 3 report sau:
- Chứng từ
- Chứng từ với dòng chữ : Chi tiết bảng
- bảng

Ở đây mình chỉ đề cập thủ thuật liên quan việc xử lý nút in. Còn nội dung mình không xem xét!
Trong nút nhấn In của form in, ta xử lý như sau:

Code:
Private Sub Command0_Click()
Dim rs As Recordset
Dim n As Integer
Set rs = CurrentDb().OpenRecordset("Table1", dbOpenDynaset)
rs.MoveLast
n = rs.RecordCount
MsgBox n

If n <= 9 Then
DoCmd.OpenReport "hoadon", acViewPreview
Else
DoCmd.OpenReport "hoadon1", acViewPreview
DoCmd.OpenReport "bangke", acViewPreview
End If

End Sub

Với hoadon là chứng từ không bảng
hoadon1: chứng từ có kèm bảng
table1 là table/ query chứa dữ liệu cần in


Để thảo luận thêm và download demo, vui lòng vào:
http://thuthuataccess.com/forum/thread-301.html

10/8/10

Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

hướng dẫn này cho phép chúng ta tạo 1 form chỉ cho phép người dùng mở 5 lần.
Có thể dùng ràng buộc người dùng phải đăng ký để dùng tiếp.

----------------------------------------------------------
Tác giả và demo: Cafe Via He
Site: http://thuthuataccess.co.cc/forum
Vui lòng giữ tên tác giả và site nếu bạn dùng hoặc chia sẻ code này.
------------------------------------------------
Tạo 1 table tên là FormInfo(FormName,times)
Formname: Text
Times: number

1 Form tên là demo
Trong đó, vẽ 1 textbox tên là txtT để thể hiện số lần mở form. Các yếu tố màu mè khác. Form sẽ có dung nhan như sau
[Image: solanmoform.png]
Trong sự kiện Openform, bạn dùng code sau:
Code:
Private Sub Form_Open(Cancel As Integer)
DoCmd.SetWarnings False
Dim frm As String
Dim t As Integer

    frm = DCount("formname", "Forminfo", "formname='" & Me.Name & "'")
    t = Nz(DLookup("times", "Forminfo", "formname='" & Me.Name & "'"), 0)
  
If frm = 0 Then 'Neu form chua mo lan nao
    t = t + 1
    DoCmd.RunSQL "Insert into Forminfo(formname,times) values('" & Me.Name & "'," & t & ")"
    txtT = t  
ElseIf frm > 0 And t < 5 Then 'Cong don so lan mo form
    t = t + 1
    DoCmd.RunSQL "Update FormInfo set Times =" & t
    txtT = t
ElseIf frm > 0 And t = 5 Then ' Neu da mo form duoc 5lan
    MsgBox "This form was opened 5 times" & vbCrLf & vbCrLf & "Expired!!!"
    Cancel = True
End If

End Sub

Và nếu form này mở quá 5 lần thì chương trình sẽ không cho mở form nữa!
[Image: exspire5lan.png]


Demo Download

Nếu bạn muốn mở form quá 5 lần thì chương trình tự thoát ra, bạn thay dòng
Cancel=true
Bằng dòng
Docmd.quit
Chúc thành công!

DownLoad Demo
Để thảo luận thêm về chủ đề này, mời vào topic:
http://thuthuataccess.co.cc/forum/thread-273.html

10/7/10

Tạo Report Chỉ cho in 1 lần duy nhất- Xem thoải mái

Hỏi : Mình đang thiết kế 1 report đặc biệt chỉ cho phép người sử dụng in ra máy in 1 lần duy nhất còn Preview thì thoải mái.
(dongnamnb- Danketoan)

Đáp:
Ý tưởng: Phatnq2002 - DKT
Coding & Demo: Noname: thuthuataccess

Dựa theo Ý tưởng thứ 2 của anh Phatnq2002, Tức là khi xem nó sẽ hiện 1 label cho biết đó không phải là bản chính thức. Còn khi in chính thứ thì ẩn đi, và chỉ cho in chính thức 1 lần rồi khóa lại luôn.

10/6/10

Ràng buộc số record được nhập vào 1 Form nhập chứng từ

Share by: Noname
Site: http://thuthuataccess.com
----------------------------------------
Như các bạn đã biết, có vài loại chứng từ, nhất là các chứng từ in sẵn khống chế số lượng record được viết ra. ( Vì dụ Hóa đơn đỏ)

Vì vậy, thủ thuật này cho phép ta khống chế số lượng record được nhập trong 1 form.
Để xử lý, chúng ta dùng event before_BeforeInsert Của form như sau: