Form đơn giản để tạo mã cho nhân viên mới gia nhập vô cơ quan, có dạng ABC99

  • Thread starter SA_DQ
  • Ngày gửi
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
539
96
28
65
HCM city
Có 1 CSDL gồm danh sách các nhân viên như hình:


STTHọ & TênNam
1CNS00Chu Ngọc Sơn
2CVA00Cỗ Văn Ẩn
3CMN00Công Tằng Tôn Nữ Minh Nguyệt
4CNM00Công Tằng Tôn Nữ Nguyệt Minh
5FFD00Đào Đức Dương
6FLT00Đinh La Thăng
7FMC00Đinh Minh Châu
8FFD01Đỗ Đăng Dung
9FTH00Đỗ Thanh Hương
10DAH00Dương Ánh Hòa
11HDM00Hà Diễm My
12HBC00Hoàng Bảo Châu
13LCM01Lã Chí Mai

Nhiệm vụ đề ra là tạo mã cho nhân viên mới này phù hợp theo qui chuẩn:
Mã NV luôn có độ dài là 5, gồm 3 ký tự & sau chúng là 2 ký số

Các bạn xem file sẽ rõ hơn
Chúc các bạn vui!
 

Đính kèm

  • GiaoDuc.rar
    34 KB · Lượt xem: 0
Sửa lần cuối:
Lộ trình trở thành Kế toán quản trị chuyên nghiệp
S

SA_DQ

Thành viên Cố vấn - Webketoan Mentors
29/6/05
539
96
28
65
HCM city
Ở bài 1 ta thấy rằng danh sách nhân sự đã có mã ấn định cho từng người trong nó;
& chuyện còn lại là nhập mã NS cho người mới vô cơ quan cho phù hợp với bộ mãđang hiện hành;

Bài này chúng sẽ tạo cột mã NS mới theo 1 danh sách nhân sữ có mã sẵn, nhưng mã cũ này kém tính tương tác giữa người có mã cá nhân & các cán bộ quả lý nhân sự trong cơ quan;

Trong file đính kèm có macro dùng để phục vụ cho tác vụ đó; nó là hàm tự tạo:
PHP:
Function MaNS(Str, Optional sepChar As String = " ")
 Dim GPE As Variant, J As Integer
 
 GPE = Split(Str, sepChar)
 For J = 0 To UBound(GPE)
    MaNS = MaNS & Left(GPE(J), 1)
 Next J
 If Len(MaNS) = 2 Then
    MaNS = Left(MaNS, 1) & "J" & Right(MaNS, 1)
 ElseIf Len(MaNS) > 3 Then
    MaNS = Left(MaNS, 1) & Right(MaNS, 2)
 End If
 MaNS = LoaiDauTV(MaNS)
End Function
Mã:
Function LoaiDauTV(ByVal Text As String) As String
 Dim Charcode(), ResTxt(), I As Long, Tmp As String
 
 Tmp = Text
 Charcode = Array(224, 225, 226, 227, 259, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, _
    7863, 273, 232, 233, 234, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 236, 237, 297, 7881, 7883, 242, _
        243, 244, 245, 417, 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 249, 250, _
            361, 432, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 253, 7923, 7925, 7927, 7929)
 ResTxt = Array("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", _
    "F", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "i", "i", "i", "i", "i", "o", "o", _
        "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "u", _
            "u", "u", "u", "u", "u", "u", "y", "y", "y", "y", "y")      'd'
 For I = 0 To UBound(Charcode)
    Tmp = Replace(Tmp, ChrW(Charcode(I)), ResTxt(I))
    Tmp = Replace(Tmp, UCase(ChrW(Charcode(I))), UCase(ResTxt(I)))
 Next
 LoaiDauTV = Tmp
 End Function
 

Đính kèm

  • GiaoDuc.rar
    34.8 KB · Lượt xem: 0

Xem nhiều

Webketoan PRO