-
RE: Hàm tạo số phiếu tự động
khongcanbiet486 > 29-01-17, 10:15 PM
Cách này mình thấy chưa ổn lắm! Nếu một chương trình viết xong và đưa vào sử dụng chẳng lẽ ai cũng biết vào đó để thực hiện ạ? Và người không biết về access cũng khó bạn ơi! Nhờ bạn và mọi người xem có cách nào khác tiện hơn? -
RE: Hàm tạo số phiếu tự động
maidinhdan > 29-01-17, 11:00 PM
(22-01-17, 08:44 PM)thanhtruong Đã viết:
(20-01-17, 11:23 AM)khongcanbiet486 Đã viết: Em đã sửa theo ý anh hướng dẫn ạ. Và em đã sửa lại một chút hàm cho phù hợp của em:
Em đã sửa trường Dem=AutoNumber. Vậy cho em hỏi thêm 1 câu nữa:Mã PHP:Function TaoSP() As String
Dim SoMax As Double
SoMax = DMax("Dem", "tblDuLieu")
loai = DLookup("KyHieu", "tblLoaiPhieu", "ID=1")
TaoSP = loai & Format(Month(Date), "00") & "/" & Format(SoMax + 1, "00000")
End Function
Nhưng hiện tại đây là dữ liệu giả lập. Em làm rùi em xóa đi. Cho đến khi áp dụng thực tế thì số phiếu của em đã nhảy lên đến số 99999 rùi ạ. Vậy em phải làm như thế này để ở bất cứ thời điểm nào em chi cần nhập vào là PN01/00001 thì nó sẽ nhảy tự động tăng dần lên?
Nhời anh và mọi người hướng dẫn em thêm!
Cám ơn mọi người nhiều!
Tải file đính kèm
Bạn xóa hết dữ liệu tại các table, rồi vào Tools/ database Utilities / Compact and Repair Data... là nó về lại từ đầu thôi.
(29-01-17, 10:15 PM)khongcanbiet486 Đã viết: Cách này mình thấy chưa ổn lắm! Nếu một chương trình viết xong và đưa vào sử dụng chẳng lẽ ai cũng biết vào đó để thực hiện ạ? Và người không biết về access cũng khó bạn ơi! Nhờ bạn và mọi người xem có cách nào khác tiện hơn?
Đơn gian nhất là bạn tạo query và dựa vào query này để lấy số thứ tự.
Cách làm là bạn tạo 1 cột trong query, tách lấy 5 ký tự bên phải của PN01/00001, sau đó chuyển nó thành kiểu Number, rồi từ form ta dùng hàm mình hướng dẫn để lấy số thứ tự lơn nhất.
* Ghi chú: Nếu bạn rành về sql thì có thể viết thẳng trong hàm thay cho cái query trên
Thân mến! -
RE: Hàm tạo số phiếu tự động
chuvoicon > 04-02-17, 03:04 PM
Dim sphieu
If IsNull(masonhap) = True Or DLast("mid(masonhap,7,2)", "tblnhapthanhpham") <> Format(Month(Date), "00") = True Then
DoCmd.GoToRecord , , acNewRec
masonhap = "KTP" & Right(Year(Date), 2) & "-" & Format(Month(Date), "00") & Format(1, "000")
Me.ngaylap.SetFocus
Else
DoCmd.GoToRecord , , acNewRec
sphieu = DLast("Right([masonhap], 3)", "tblnhapthanhpham")
masonhap = "KTP" & Right(Year(Date), 2) & "-" & Format(Month(Date), "00") & Format(sphieu + 1, "000")
ngaylap.SetFocus
End If
Bạn tham khảo cấu trúc này xem có áp dụng được không, tự reset khi sang tháng mới luôn
Cấu trúc này tạo ở nút thêm mới phiếu