maidinhdan > 11-11-17, 01:19 AM
(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!
'---------------------------------------------------------------------------------------
' 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
Private Sub LaySoTT_Click()
DoCmd.GoToRecord , , acNewRec
Me.SoChungTu = LaySTT2("tblXuatNhap", "SoChungTu", "N", Me.txtNgaynhaplieu)
End Sub
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.
kiepgiangho79 > 13-11-17, 03:28 PM
dninh > 13-12-17, 11:15 PM
hungacc > 29-07-18, 11:06 AM
TuND > 04-09-18, 03:19 PM
maidinhdan > 09-09-18, 10:34 PM
soluuhuong85 > 30-10-18, 12:05 PM