-
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
maidinhdan > 11-11-17, 01:19 AM
Từ bài của bạn trên diễn đàn, tôi xin làm 1 demo giúp cho bạn xử lý vấn đề số số thứ tự tăng dần, qua ngày mới sẽ reset lại
Câu hỏi của bạn như sau;
(07-11-17, 05:11 PM)pherotao Đã viết: Ý số 1: Số Hóa Đơn phải tăng dần theo ngày.
Ví dụ:
- Tháng 10, có PHIẾU NHẬP phát sinh:
+ ngày 03, có 05 phiếu: 'N 2017 10 03 001', 'N 2017 10 03 002', 'N 2017 10 03 003', 'N 2017 10 03 004', 'N 2017 10 03 005';
+ ngày 13 có 03 phiếu: 'N 2017 10 13 001', 'N 2017 10 13 002', 'N 2017 10 13 003';
+ ngày 30 có 1 phiếu: 'N 2017 10 30 001'.
- Tháng 11, có PHIẾU NHẬP phát sinh:
+ ngày 09, có 03 phiếu: 'N 2017 11 09 001', 'N 2017 11 09 002'; 'N 2017 11 09 003';
+ ngày 28, có 04 phiếu: 'N 2017 11 28 001', 'N 2017 11 28 002', 'N 2017 11 28 003', 'N 2017 11 28 004'
v.v....
Ý số 2; Nhập thêm vào nếu quên nhập ngày nào đó
- tháng 10, có thêm 3 phiếu mà chưa nhập lên máy: lần lượt: 01 phiếu ngày 14/10/2017; 02 phiếu ngày 18/10/2017;
- tháng 11, vào ngày 09/11/2017, có phiếu 'N 2017 11 09 002' phải sửa lại nhập cho 30/10/2017. Vì vậy mong muốn là: 'N 2017 11 09 002' sẽ thành 'N 2017 10 30 002' (lúc đầu 30/10 chỉ có 1 phiếu, giờ tăng lên 2 phiếu);
Ý số 3: Điều chỉnh lại số Chứng từ cho liên tục nếu lỡ nhập dư; còn 09/11 từ 03 giảm còn 2: 'N 2017 11 09 003' sẽ tự điều chỉnh thành 'N 2017 11 09 002';
Xin mọi người giúp mình với! Xin cảm ơn!
Trả lời:
Ý 1. Số Hóa Đơn phải tăng dần theo ngày+[b]Ý số 2; Nhập thêm vào nếu quên nhập ngày nào đó: [/b]
Tạo 1 hàm như sau:
Mã PHP:'---------------------------------------------------------------------------------------
' Procedure : LaySTT2
' Author : HenDan
' Date : 5/30/2017
' Purpose : So thu tu tang dan reset moi ngay, Khong dua vao query ma truy van truc tiep bang ham Dlast
'---------------------------------------------------------------------------------------
' Cu phap: LaySTT2("tblPhieuNhap", "ID", "X")
Function LaySTT2(TenTable As String, TenCotSTT As String, KyTyCanChen As String, Optional Ngaynhap As Date) As String
On Error Resume Next
Dim SoTD As Double, s As Double
Dim SoMax As String, SoNext As String
Dim yyyy As String, mm As String, dd As String
If IsNull(Ngaynhap) Then
yyyy = Format(Year(Date), "0000")
mm = Format(Month(Date), "00")
dd = Format(Day(Date), "00")
Else
yyyy = Format(Year(Ngaynhap), "0000")
mm = Format(Month(Ngaynhap), "00")
dd = Format(Day(Ngaynhap), "00")
End If
'SoMax = DLast("[ID]", "[tblPHIEUNHAP]", "Mid([ID], 2, 6)='" & yy & mm & "'") ' Lay mau tin cuoi cung duoc tao
SoMax = DLast(TenCotSTT, TenTable, "Mid([" & TenCotSTT & "], 2, 8)='" & yyyy & mm & dd & "'") ' Lay mau tin cuoi cung duoc tao
SoMax = Right(SoMax, 4) ' Lay STT 4 ky tu cuoi
s = Val(SoMax) ' Chuyen chuoi thanh so
If IsNull(s) Then
SoTD = 1
Else
SoTD = s + 1
End If
SoNext = Format(SoTD, "0000") ' Dinh dang kieu 4 ky tu de hien thi, Nhu vay So thu tu lon nhat se la 9999
LaySTT2 = KyTyCanChen & yyyy & mm & dd & SoNext
End Function
Ở trên form ta sẽ :
+ tạo 1 textbox chưa ngày ta nnhập lên máy ( tạm đặt tên là txtngaynhaplieu)
+ tạo 1 nút lấy tên là LaySoTT
Ta chèn cú pháp sau vào sự kiện Click của nút LaySoTT
Mã PHP:Private Sub LaySoTT_Click()
DoCmd.GoToRecord , , acNewRec
Me.SoChungTu = LaySTT2("tblXuatNhap", "SoChungTu", "N", Me.txtNgaynhaplieu)
End Sub
Lưu ý: Nhớ rõ nguyên tắc nhập ngày tháng năm bằng bàn phím trên Access luôn luôn phải nhập tháng/ngày/năm. ( kiểu format dd/mm/yyyy chỉ là kiểu hiển thị cho chúng ta xem thôi.
Đính kèm demo phía dưới
Ý số 3: Điều chỉnh lại số Chứng từ cho liên tục nếu lỡ nhập dư
Câu này hơi khó và cách giải quyết thì phức tạp vô cùng, cũng như ongke0711 đã có 1 bài giải thích về vấn đề này.
Kiến nghị: ở kiến thức và khả năng của bạn thì mình đề nghị nên tự điều chỉnh bằng tay là tốt nhất.
Các nút Lưu sửa Xóa thì bạn tự nghiên cứu nhé
Thân mến và chúc bạn thành công. -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
pherotao > 11-11-17, 09:13 PM
(11-11-17, 01:19 AM)maidinhdan Đã viết: Ý số 3: Điều chỉnh lại số Chứng từ cho liên tục nếu lỡ nhập dư
Câu này hơi khó và cách giải quyết thì phức tạp vô cùng, cũng như ongke0711 đã có 1 bài giải thích về vấn đề này.
Kiến nghị: ở kiến thức và khả năng của bạn thì mình đề nghị nên tự điều chỉnh bằng tay là tốt nhất.
Các nút Lưu sửa Xóa thì bạn tự nghiên cứu nhé
Thân mến và chúc bạn thành công.
Đúng là "Ý số 03" nan giải thật. Vẫn chưa làm được. Cám ơn bạn đã nhiệt tình trả lời bài của mình. -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
kiepgiangho79 > 13-11-17, 03:28 PM
CHo e cái nập lại STT: ngocbanladif@gmail.com -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
dninh > 13-12-17, 11:15 PM
Bạn maidinhtan ơi mình có 1 vấn đề muốn nhờ bạn giúp đỡ. Mình có thể gửi mail cho bạn dc ko ? -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
hungacc > 29-07-18, 11:06 AM
Bạn cho mình xin bảng không khóa nhénhé. Email: hungacc@gmail.com thanks -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
TuND > 04-09-18, 03:19 PM
Cho mình xin một bản không khóa nhé, xin cảm ơn!
email: ductuls@gmail.com -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
maidinhdan > 09-09-18, 10:34 PM
đã gửi
Nguyễn Chí Hưng <hungacc@gmail.com>,
ductuls@gmail.com -
RE: [Video+Demo] 2 Cách Tạo Số tăng dần và Reset theo nhu cầu
soluuhuong85 > 30-10-18, 12:05 PM
Cho mình xin một bản không khóa nhé, xin cảm ơn!
email: soluuhuong85@gmail.com