Đánh giá chủ đề:
  • 5 Votes - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tạo số phiếu tăng theo mẫu : date+STT
#1
Hôm trước mình giới thiệu thủ thuật tạo số phiếu tăng tự động theo đoạn code của anh phatnq2002 trang Dân Kế Toán
Tạo số chứng từ tăng dần và reset mỗi tháng

Hôm nay, mình giới thiệu đoạn code tạo số chứng từ tăng dần theo mẫu dạng: dd/mm/yy + số TT
Để số thứ tự tự động tăng dần để trường STT là Text. Đồng thời ta thêm 1 trường couter kiểu Number - Integer để đếm số phiếu trong ngày. Trường này sẽ tăng khi bạn nhập phiếu mới với giá trị = max giá trị ngày đó.
Trường STT của bạn sẽ được set giá trị = Date & "-" & format(Couter,"000")

* Chú ý: để biết 1 record có phải được thêm mới hay không, bạn xét ở sự kiện Form_Current() của form. Nếu STT của bạn là null thì nó là record mới.

Mã:
Private Sub Form_Current()
    'Kiểm Tra số thứ tự, nếu Null thì đó là recodr mới
    If IsNull(Me.STT) Then
    STT.Value = SoTT
    End If
    End Sub

    Function SoTT() As String
    Dim so As Integer
    so = Nz(DMax("[Couter]", "BangChi", "[Date]= date()"))
    Couter.Value = so + 1
    SoTT = Date & "-" & Format(Couter, "000")
    End Function

Mời các bạn xem demo về xem:
DownLoad
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn domfootwear , nhunguyet0103 , thanhtruong
#2
(26-08-10, 08:32 PM)Noname Đã viết: Hôm trước mình giới thiệu thủ thuật tạo số phiếu tăng tự động theo đoạn code của anh phatnq2002 trang Dân Kế Toán
Tạo số chứng từ tăng dần và reset mỗi tháng

Hôm nay, mình giới thiệu đoạn code tạo số chứng từ tăng dần theo mẫu dạng: dd/mm/yy + số TT
Để số thứ tự tự động tăng dần để trường STT là Text. Đồng thời ta thêm 1 trường couter kiểu Number - Integer để đếm số phiếu trong ngày. Trường này sẽ tăng khi bạn nhập phiếu mới với giá trị = max giá trị ngày đó.
Trường STT của bạn sẽ được set giá trị = Date & "-" & format(Couter,"000")

* Chú ý: để biết 1 record có phải được thêm mới hay không, bạn xét ở sự kiện Form_Current() của form. Nếu STT của bạn là null thì nó là record mới.

Mã:
Private Sub Form_Current()
    'Kiểm Tra số thứ tự, nếu Null thì đó là recodr mới
    If IsNull(Me.STT) Then
    STT.Value = SoTT
    End If
    End Sub

    Function SoTT() As String
    Dim so As Integer
    so = Nz(DMax("[Couter]", "BangChi", "[Date]= date()"))
    Couter.Value = so + 1
    SoTT = Date & "-" & Format(Couter, "000")
    End Function

Mời các bạn xem demo về xem:
DownLoad

Chào bạn, cho mình hỏi? nếu sang năm 2016 Số thứ tự này có tự động quay về 001 không vậy bạn!
Ví dụ: 1/1/2015-001, 1/1/2015-02................1/1/2016-001
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#3
Bạn ơi. code của bạn mỗi ngày đều về lại 001. vậy cho mình hỏi? giờ mình muốn sau một năm số thứ tự mới reset lại 00001, thì làm sao
code của mình như sau, bạn chỉnh lại giúp mình với. 2014001, 2014002.....2015001...

Mã:
Private Sub Form_Current()
    'Kiểm Tra số thứ tự, nếu Null thì đó là recodr mới
    If IsNull(Me.STT) Then
    STT.Value = SoTT
    End If
    End Sub

    Function SoTT() As String
    Dim so As Integer
    so = Nz(DMax("[Couter]", "BangChi", "[Date]= date()"))
    Couter.Value = so + 1
    SoTT = format(year(Date)) & "" & Format(Couter, "000")
    End Function
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#4
sao không có ai chỉ dẫn cho mình vậy nhỉ?
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#5
Bạn tham khảo đoạn code dưới đây: Số TT tự động Reset khi sang năm mới.

Ờ sự kiển mở
Mã:
Private Sub Form_Open(Cancel As Integer)
If IsNull(SoBN) Then
Docmd.GoToRecord , , acNewRec
Me.SoBN.Value = "1"
Me.SoLuu.Value = "1" & "/" & Year(Now) & "/GBN-TTPY"
msgBoxOK DLookup("[NDUNG1]", "tblTHONGBAO", "[SOTB] = 16"), vbInformation, DLookup("[TIEUDE]", "tblTHONGBAO", "[SOTB] = 16")
Me.Tennguoinhan.SetFocus
End If
End Sub

Ở sự kiện thêm mới
Mã:
Private Sub cmdthem_Click()
Dim SoAo
If Year(Now) = DLast(Year([Ngaynhan]), "tbl_BBGiaoNhan_Main") Then  ' Đây là đoạn mỗi năm reset một lần nè
    Docmd.GoToRecord , , acNewRec
    SoAo = DLast("[SoBN]", "tbl_BBGiaoNhan_Main")
    SoBN = Format(SoAo + 1, "#")
    Me.SoLuu.Value = Me.SoBN.Value & "/" & Year(Now) & "/GBN-TTPY"
    Me.Dienthoaidelienhe.Value = DLast("[Dienthoaidelienhe]", "tbl_BBGiaoNhan_Main")
    Me.Tennguoinhan.SetFocus
Else
    Docmd.GoToRecord , , acNewRec
    Me.SoBN.Value = "1"
    Me.SoLuu.Value = "1" & "/" & Year(Now) & "/GBN-TTPY"
    Me.Tennguoinhan.SetFocus
    End If
End Sub

demo: https://sites.google.com/site/congthucas...ects=0&d=1
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn thanhtruong


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Thủ Thuật] Ẩn record trong table theo ngày tháng tvn_hut 6 494 24-04-16, 01:00 AM
Bài mới nhất: tvn_hut
  Tạo số chứng từ tăng dần và reset lại theo yêu cầu người dùng Noname 10 5,874 03-09-14, 11:22 PM
Bài mới nhất: tqcuong
Question [Help] Giúp mình tạo backup database theo ngày tháng chỉ định hugox03 3 755 05-02-14, 11:34 PM
Bài mới nhất: morosumo
  Sort List theo Alphabe Noname 3 2,190 13-03-12, 12:53 PM
Bài mới nhất: kagetsu
  Xoá các table theo điều kiện trong Access Noname 8 5,356 12-11-11, 02:56 PM
Bài mới nhất: dannynguyen1980

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ