-
Tạo số phiếu tăng theo mẫu : date+STT
Noname > 26-08-10, 08:32 PM
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 -
RE: Tạo số phiếu tăng theo mẫu : date+STT
thanhtruong > 22-01-15, 02:06 PM
(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 -
RE: Tạo số phiếu tăng theo mẫu : date+STT
thanhtruong > 27-01-15, 08:44 AM
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 -
RE: Tạo số phiếu tăng theo mẫu : date+STT
thanhtruong > 27-01-15, 11:11 AM
sao không có ai chỉ dẫn cho mình vậy nhỉ? -
RE: Tạo số phiếu tăng theo mẫu : date+STT
maidinhdan > 27-01-15, 04:11 PM
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 -
RE: Tạo số phiếu tăng theo mẫu : date+STT
tieu_ngao > 21-05-17, 05:34 PM
(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
Cho mình hỏi là nếu dùng Dmax để lấy số lớn nhất + 1
Nhưng mình muốn lấy số trên nó 1 dòng ( vì mình dùng làm số biên lai tăng dần nên khi chưa lấy thì dòng cuối chưa có số Biên lai nào hết)
Mình dùng Dlast nhưng nó hiểu là dòng cuối cùng chưa có số nên + 1 nó sẽ ko ra.
Vậy thì dùng cách nào để lấy, mong dc giúp đỡ. -
RE: Tạo số phiếu tăng theo mẫu : date+STT
maidinhdan > 22-05-17, 12:02 AM
(21-05-17, 05:34 PM)tieu_ngao Đã viết:
(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
Cho mình hỏi là nếu dùng Dmax để lấy số lớn nhất + 1
Nhưng mình muốn lấy số trên nó 1 dòng ( vì mình dùng làm số biên lai tăng dần nên khi chưa lấy thì dòng cuối chưa có số Biên lai nào hết)
Mình dùng Dlast nhưng nó hiểu là dòng cuối cùng chưa có số nên + 1 nó sẽ ko ra.
Vậy thì dùng cách nào để lấy, mong dc giúp đỡ.
Hàm hôm trước viết cho anh sao không lấy ra mà dùng.
Hàm ở trên chỉ thiếu hàm if thôi. -
RE: Tạo số phiếu tăng theo mẫu : date+STT
tieu_ngao > 22-05-17, 05:36 AM
(22-05-17, 12:02 AM)maidinhdan Đã viết:
Hi maidinhdan. Hom trước hàm Dân viết cho là lấy số TT, còn bây giờ mình muốn lấy số hóa đơn tự tăng khi nhập số hóa đớn đầu tiên. Mình dùng dmax cũng dc nhưng thấg ko ổn, còn dlast thì thua.(21-05-17, 05:34 PM)tieu_ngao Đã viết:
(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
Cho mình hỏi là nếu dùng Dmax để lấy số lớn nhất + 1
Nhưng mình muốn lấy số trên nó 1 dòng ( vì mình dùng làm số biên lai tăng dần nên khi chưa lấy thì dòng cuối chưa có số Biên lai nào hết)
Mình dùng Dlast nhưng nó hiểu là dòng cuối cùng chưa có số nên + 1 nó sẽ ko ra.
Vậy thì dùng cách nào để lấy, mong dc giúp đỡ.
Hàm hôm trước viết cho anh sao không lấy ra mà dùng.
Hàm ở trên chỉ thiếu hàm if thôi. -
RE: Tạo số phiếu tăng theo mẫu : date+STT
maidinhdan > 22-05-17, 10:28 AM
(22-05-17, 05:36 AM)tieu_ngao Đã viết:
(22-05-17, 12:02 AM)maidinhdan Đã viết:
Hi maidinhdan. Hom trước hàm Dân viết cho là lấy số TT, còn bây giờ mình muốn lấy số hóa đơn tự tăng khi nhập số hóa đớn đầu tiên. Mình dùng dmax cũng dc nhưng thấg ko ổn, còn dlast thì thua.(21-05-17, 05:34 PM)tieu_ngao Đã viết:
(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
Cho mình hỏi là nếu dùng Dmax để lấy số lớn nhất + 1
Nhưng mình muốn lấy số trên nó 1 dòng ( vì mình dùng làm số biên lai tăng dần nên khi chưa lấy thì dòng cuối chưa có số Biên lai nào hết)
Mình dùng Dlast nhưng nó hiểu là dòng cuối cùng chưa có số nên + 1 nó sẽ ko ra.
Vậy thì dùng cách nào để lấy, mong dc giúp đỡ.
Hàm hôm trước viết cho anh sao không lấy ra mà dùng.
Hàm ở trên chỉ thiếu hàm if thôi.
Hôm trước em đã giải thích ý nghĩa từng dòng code cho anh rồi.
Từ đoạn code ấy anh chế thành bất cứ thì gì cũng được, vì thế em mới ngồi giải thích anh hiểu.
Anh nên tập đọc và hiểu cách vận hành của nó, rồi tự ắt sẽ viết ra cho mình 1 hàm.
Chứ viết cho anh thì nó không khó, và như thế lại mất đi ý nghĩa của diễn đàn này.
Anh tự viết cho mình như em từng viết cho anh, rồi post lên đây chỗ nào chưa được thì sẽ viết bổ sung cho anh.
Thân ái! -
RE: Tạo số phiếu tăng theo mẫu : date+STT
chuvoicon > 24-05-17, 10:23 AM
Gửi bạn Tieu_Ngao
Mình có code này hiện nay đang sử dụng bạn xem có giúp gì được bạn không nhé, mình cũng đang sử dụng hàm dlast và reset theo tháng, bạn tham khảo và tùy biến vào ứng dụng của mình
Private Sub moi_Click()
Modulieu
dau.Enabled = False
truoc.Enabled = False
sau.Enabled = False
cuoi.Enabled = False
Dim Ma
If IsNull(masoxuat) = True Or DLast("Mid(masoxuat, 7, 2)", "tblxuathang") <> Format(Month(Date), "00") = True Then
DoCmd.GoToRecord , , acNewRec
masoxuat = "PXK" & Format(Right(Year(Date), 2), "00") & "-" & Format(Month(Date), "00") & Format(Ma + 1, "0000")
Else
DoCmd.GoToRecord , , acNewRec
Ma = DLast("Right([masoxuat], 4)", "tblxuathang")
masoxuat = "PXK" & Right(Year(Date), 2) & "-" & Format(Month(Date), "00") & Format(Ma + 1, "0000")
ngaylap.SetFocus
End If
End Sub