Xuân Thanh > 24-04-13, 12:31 PM
Function CreateCode(strName As String, strDateOfBirth As Date, strGender As String) As String
Dim sName As String
Dim sNowName As String
sNowName = Trim(strName)
sName = Left(sNowName, 1)
Dim i As Integer
For i = 1 To Len(sNowName)
If Mid(sNowName, i, 1) = Space(1) Then
sName = sName & Mid(sNowName, i + 1, 1)
End If
Next
Dim sDate As String
sDate = Year(strDateOfBirth) & Right("0" & Month(strDateOfBirth), 2) & Right("0" & Day(strDateOfBirth), 2)
Dim sGender As String
sGender = IIf(strGender = "Nam", "M", "F")
CreateCode = sName & sDate & sGender
End Function
tracanhtam > 25-04-13, 10:11 AM
(24-04-13, 12:31 PM)Xuân Thanh Đã viết: Khi thiết kế các chương tình quản lý Học viên, Hộ khẩu, Nhân sự...ta thường phải tạo Mã cho Học viên, Nhân Khẩu, Nhân viên... Có nhiều cách tạo mã cho các trường hợp này. Xin giới thiệu với các bạn hàm CreateCode mà tôi hay sử dụng. Hàm này dựa vào khai báo Họ Tên, Ngày Sinh, Giới tính để tạo MãBạn cho hỏi, nếu một người không có ngày sinh hoặc tháng sinh hoặc cả hai thì làm sao? Xin cám ơn
1/ Lấy các chữ cái đầu của Họ tên để tạo ra thành phần HOTEN
Ví dụ : Nguyễn Văn Thanh thì HOTEN = NVT, Trần Thị Mộng Hoài thì HOTEN = TTMH
2/ Lấy Năm của Ngày sinh, Tháng của Ngày Sinh(2 số), Ngày của Ngày Sinh(2 số) ghép lại tạo thành NGAYSINH
Ví dụ Ngày sinh = 15/11/1958 thì NGAYSINH = 19581115, Ngày sinh = 3/7/1965 thì NGASINH = 19650703
3/ Lấy Giới tính tạo ra GIOITINH
Ví dụ Giới tính = Nam thì GIOITINH = M, Giới tính = Nữ thì GIOITINH = F
Và CreateCode = HOTEN & NGAYSINH & GIOITINH
Ví dụ Nhân viên Trần Thị Mộng Hoài, sinh 3/7/1965, giới tính nữ thì Mã Nhân Viên sẽ là NTMH19650703F
Với cách tạo mã tự sinh như thế này thì trong một bộ hồ sơ ít xảy ra trường hợp bị trùng Mã
Mời các bạn tham khảo hàm CreateCode
Mã PHP:Function CreateCode(strName As String, strDateOfBirth As Date, strGender As String) As String
Dim sName As String
Dim sNowName As String
sNowName = Trim(strName)
sName = Left(sNowName, 1)
Dim i As Integer
For i = 1 To Len(sNowName)
If Mid(sNowName, i, 1) = Space(1) Then
sName = sName & Mid(sNowName, i + 1, 1)
End If
Next
Dim sDate As String
sDate = Year(strDateOfBirth) & Right("0" & Month(strDateOfBirth), 2) & Right("0" & Day(strDateOfBirth), 2)
Dim sGender As String
sGender = IIf(strGender = "Nam", "M", "F")
CreateCode = sName & sDate & sGender
End Function
Chúc các bạn vui
Thân mến
Xuân Thanh > 25-04-13, 10:47 AM
tracanhtam > 25-04-13, 11:21 AM
(25-04-13, 10:47 AM)Xuân Thanh Đã viết:(25-04-13, 10:11 AM)tracanhtam Đã viết: Bạn cho hỏi, nếu một người không có ngày sinh hoặc tháng sinh hoặc cả hai thì làm sao? Xin cám ơn
1/ Nhân viên không có ngày sinh là sao?
2/ Hàm trên chỉ mang tính chất gợi ý. Cụ thể thì các bạn tuy32nghi chế biến cho phù hôp
Thân mến
bomnhauag > 25-04-13, 11:41 AM
Xuân Thanh > 25-04-13, 04:31 PM
(25-04-13, 11:41 AM)bomnhauag Đã viết: có 1 cách tối ưu hơn là tạo Field tên ID<Autonumber> làm khóa chính cho table, sẽ ổn hơn, mã NV,HS thì phát sinh dựa vào ID này bảo đảm tuyệt đối không trùng luôn.
Table: tbHocSinh(ID<Autonumber>, MaHS, TenHS,.....)
VD:
function taoMaHS(id as integer) as string
taoMaHS = "HS" & right("00000" & id, 5)
end function
TvAcc > 27-04-13, 11:16 AM
bomnhauag > 28-04-13, 02:18 AM
TvAcc > 28-04-13, 03:09 AM
Xuân Thanh > 28-04-13, 03:56 PM