-
Hàm tạo số phiếu tự động
khongcanbiet486 > 16-01-17, 03:39 PM
Em muốn tạo một hàm đánh số phiếu tự động. Cụ thể như sau:
PN01-000001
PN01-000002
…..
PN01-999999
Trong đó:
- PN: Là mặc định không đổi
- 01: Thay đổi theo ngày tháng hiện tại. 01 là tháng 01, ….
- 000001: Tự động tăng lên 1 đơn vị. Số này tự động đánh lại khi tháng thay đổi.
Ví dụ: Sang tháng 2 thì nó sẽ là:
PN02-000001
PN02-000002
…..
PN02-999999
Và cứ như vậy nếu tháng thay đổi.
Nhờ mọi người hỗ trợ em nhé!
Cám ơn mọi người nhiều!
Tải file -
RE: Hàm tạo số phiếu tự động
maidinhdan > 16-01-17, 09:24 PM
(16-01-17, 03:39 PM)khongcanbiet486 Đã viết: Em muốn tạo một hàm đánh số phiếu tự động. Cụ thể như sau:
PN01-000001
PN01-000002
…..
PN01-999999
Trong đó:
- PN: Là mặc định không đổi
- 01: Thay đổi theo ngày tháng hiện tại. 01 là tháng 01, ….
- 000001: Tự động tăng lên 1 đơn vị. Số này tự động đánh lại khi tháng thay đổi.
Ví dụ: Sang tháng 2 thì nó sẽ là:
PN02-000001
PN02-000002
…..
PN02-999999
Và cứ như vậy nếu tháng thay đổi.
Nhờ mọi người hỗ trợ em nhé!
Cám ơn mọi người nhiều!
Tải file
Trên diễn đàn có ít nhất 10 bài viết về chủ đề này rồi, bạn sử dụng thanh tìm kiếm và tự làm nhé!
Thân mến! -
RE: Hàm tạo số phiếu tự động
khongcanbiet486 > 17-01-17, 11:40 AM
Em đã làm như vầy:
Nhưng khi em chọn tạo mới không chạy được và báo lỗi Dem.Mã PHP:Function TaoSP() As String
Dim Num As Integer
Dim loai As String
Num = Nz(DMax("Dem", "tblDuLieu", "NgayCT=Date()"))
loai = DLookup("KyHieu", "tblLoaiPhieu", "ID=1")
dem.Value = Num + 1
TaoSP = loai & Format(NgayCT, "mm") & "-" & Format(dem, "00000")
End Function
Private Sub cmdDong_Click()
DoCmd.Close
End Sub
Private Sub cmdLuu_Click()
If IsNull(Me.SoCT) Then
MsgBox "Vui long nhap so chung tu!", vbCritical + vbCritical, "Access"
Me.SoCT.SetFocus
Else
DoCmd.RunCommand acCmdSaveRecord
If IsNull(Me.SoCT) Then
SoCT.Value = TaoSP
End If
End If
End Sub
Private Sub cmdMoi_Click()
DoCmd.GoToRecord , , acNewRec
If IsNull(Me.SoCT) Then
SoCT.Value = TaoSP
End If
End Sub
Em muốn khi chọn nút Mới nó tự động thêm mới và đánh số phiếu tăng; và khi em chọn nút Lưu cũng vậy ạ!
Nhờ mọi người hướng dẫn em thêm ạ!
Tải file update -
RE: Hàm tạo số phiếu tự động
maidinhdan > 17-01-17, 04:02 PM
Sai dòng này:Chính xác là sai:Mã PHP:Num = Nz(DMax("Dem", "tblDuLieu", "NgayCT=Date()"))
Mã PHP:"NgayCT=Date()"
Tập viết lại cho đến khi nào đúng thì chép vào chương trình mà chạy. -
RE: Hàm tạo số phiếu tự động
khongcanbiet486 > 17-01-17, 04:45 PM
Anh và mọi người chỉ cụ thể cho em nhé! Thú thật em không biết sữa chỗ đó ra sao nữa? -
RE: Hàm tạo số phiếu tự động
cpucloi > 18-01-17, 10:56 AM
Xin lỗi, nhưng đọc cái nick của bạn mình hơi dị ứng "Không cần biết" -
RE: Hàm tạo số phiếu tự động
khongcanbiet486 > 19-01-17, 07:55 PM
Đến hôm nay rồi em vẫn không sửa được chỗ lỗi đó ạ! Mong mọi người chỉ thêm cho em ạ! -
RE: Hàm tạo số phiếu tự động
maidinhdan > 19-01-17, 09:06 PM
(19-01-17, 07:55 PM)khongcanbiet486 Đã viết: Đến hôm nay rồi em vẫn không sửa được chỗ lỗi đó ạ! Mong mọi người chỉ thêm cho em ạ!
Chỉnh lại cái hàm TaoSP như sau:
Mã PHP:Function TaoSP() As String
Dim SoMax As Double
SoMax = DMax("Dem", "tblDuLieu") 'Lấy số lớn nhất cột Dem
TaoSP = "PN" & Month(Date) & "-" & Format(SoMax + 1, "000000") ' Số lớn nhất cộng thêm 1, Còn tháng thì lấy tháng theo máy tính
End Function
* Bạn nên thiết kế lại table cho nó hợp lý hơn, nếu không hàm này bạn dùng cũng không được.
Ví dụ: table tblDulieu, + Cột Dem: nên để là Autonumber
Lý do: hàm TaoSP dựa vào số lớn nhất cột đếm để tăng số lên
Thân mến! -
RE: Hàm tạo số phiếu tự động
khongcanbiet486 > 20-01-17, 11:23 AM
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 -
RE: Hàm tạo số phiếu tự động
thanhtruong > 22-01-17, 08:44 PM
(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.