khongcanbiet486 > 16-01-17, 03:39 PM
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
khongcanbiet486 > 17-01-17, 11:40 AM
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 
maidinhdan > 17-01-17, 04:02 PM
Num = Nz(DMax("Dem", "tblDuLieu", "NgayCT=Date()")) 
"NgayCT=Date()" 
khongcanbiet486 > 17-01-17, 04:45 PM
cpucloi > 18-01-17, 10:56 AM
khongcanbiet486 > 19-01-17, 07:55 PM
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 ạ!
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 
khongcanbiet486 > 20-01-17, 11:23 AM
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 
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