• Hàm Tách Tên, Họ trong Access
  • Hàm Tách Tên, Họ trong Access

    Noname > 15-08-10, 01:11 PM

    Mình xin giới thiệu 1 hàm tự tách tên, họ trong Access:

    Mã:
    Public Function Split(Ten As String, Kieu As Byte)
    Dim bytSpace As Byte
    bytSpace = InStrRev(Ten, " ", -1)

    If bytSpace = 0 Then
    Split = Ten
    Exit Function
    End If

    If Kieu = 0 Then
    Split = Right(Ten, Len(Ten) - bytSpace)
    Else
    Split = Left(Ten, bytSpace - 1)
    End If
    End Function



    Chú Thích: Hàm này dùng hiệu quả trong việc tách tên họ. Truyền đối số như sau:
    Ten: Tên đầy đủ ( fullname)
    Kiểu: 0 : Tách Tên, 1 Tách Họ

    Ví Dụ:

    Name=Phạm Thị Mỹ Hạnh
    msgbox Split(Name,0) => Hạnh
    msgbox Split(Name,1) => Phạm Thị Mỹ
  • RE: Hàm Tách Tên, Họ trong Access

    thiennamlong > 01-08-14, 10:05 PM

    Mình chỉ muốn tách họ không có chữ lót tên đi kèm theo thỉ hàm này sửa lại như thế nào các bạn nhỉ ?
  • RE: Hàm Tách Tên, Họ trong Access

    Xuân Thanh > 02-08-14, 09:48 PM

    (01-08-14, 10:05 PM)thiennamlong Đã viết: Mình chỉ muốn tách họ không có chữ lót tên đi kèm theo thỉ hàm này sửa lại như thế nào các bạn nhỉ ?

    Mã PHP:
    Function TachHoTen(HoTen As StringKieu As Byte) As String
        Dim i 
    As Byte
        HoTen 
    Trim(HoTen)
        For 
    1 To Len(HoTen)
            If 
    Mid(HoTeni1) = " " Then
                
    If Kieu 0 Then TachHoTen Left(HoTen1) Else TachHoTen Right(HoTenLen(HoTen) - i)
                Exit For
            
    End If
        
    Next
    End 
    Function 

    Sử dụng :
    HoTen = Nguyễn Thị Lan Anh
    TachHoTen(HoTen, 0) = Nguyễn
    TachHoTen(HoTen, 1) = Thị Lan Anh

    (Thích thì chiều thôi chứ thực ra thì......)

    Nếu chỉ cần hàm tách lấy họ không thôi thì sửa lại như sau

    Mã PHP:
    Function TachHo(HoTen As String) As String
        Dim i 
    As Byte
        HoTen 
    Trim(HoTen)
        For 
    1 To Len(HoTen)
            If 
    Mid(HoTeni1) = " " Then
                TachHo 
    Left(HoTen1
                Exit For
            
    End If
        
    Next
    End 
    Function 

    Sử dụng :
    HoTen = Nguyễn Thị Lan Anh
    TachHo(HoTen) = Nguyễn

    Thân mến
  • RE: Hàm Tách Tên, Họ trong Access

    thiennamlong > 04-08-14, 09:23 AM

    Cảm ơn bạn Xuân Thanh nhiều, hàm TachHoTen thì tôi dùng được, nhưng sao tôi không dùng được hàm TachHo nhỉ? Và tôi cũng thấy rằng lồng 2 hay 3 lần hàm Split vào nhau ta cũng tách được họ trong chuỗi họ tên.
  • RE: Hàm Tách Tên, Họ trong Access

    Xuân Thanh > 04-08-14, 04:57 PM

    (04-08-14, 09:23 AM)thiennamlong Đã viết: Cảm ơn bạn Xuân Thanh nhiều, hàm TachHoTen thì tôi dùng được, nhưng sao tôi không dùng được hàm TachHo nhỉ? Và tôi cũng thấy rằng lồng 2 hay 3 lần hàm Split vào nhau ta cũng tách được họ trong chuỗi họ tên.

    1/ Bạn xem lại, hàm vẫn chuẩn mà
    2/ Bạn hỏi sửa hàm trên như thế nào thì tôi sửa dùm bạn đó thôi. Nếu dùng Split còn đơn giản nữa

    Mã PHP:
    Function TachHo(HoTen As String) As String
        Dim Ho 
    As Variant
        Ho 
    Split(HoTen" ")
        
    TachHo Ho(0)
    End Function 

    Thân mến