/* */

Wednesday, December 2, 2015

FW: [belajar-access] Re: Membagi Isi Field berdasarkan Karakter

 

 


From: belajar-access@yahoogroups.com [mailto:belajar-access@yahoogroups.com]
Sent: 22 Oktober 2015 10:45
To: belajar-access@yahoogroups.com
Subject: [belajar-access] Re: Membagi Isi Field berdasarkan Karakter

 

 

Bang Udin,

VBA bisa mengatasi masalah tersebut.

 

Kita akan membuat suatu fungsi yang akan memisahkan nama lengkap menjadi nama gelar depan, nama, dan gelar belakangnya, dengan menggunakan fungsi array.

 

idenya adalah, kita tentukan dulu array gelar depan (prefix), dan array gelar belakang (sufix)

 

Sebagai contoh :

 

    Dim arr_prefix

    arr_prefix = Array("Prof.", "Dr.")

    

    Dim arr_suffix

    arr_suffix = Array("SH.", "MH.")

 

 

lanjutkan daftar di dalam array tersebut sesuai kebutuhan.

 

selanjutnya dari parameter nama yang masuk (full_name) kita pecah menjadi array baru.

 

 

    Dim nm_split

    nm_split = Split(full_name, " ")

 

 

nm_split ini akan berisi kata tunggal dari setiap kata yang terdapat dalam nama.

jadi dia akan menjadi array("Prof.", "Dr.", "Bambang", "Raharjo,", "SH.", "MH.")

 

setelah itu kita bisa melakukan cek kata per kata, apakah kata tersebut ada di prefix, atau di sufix.

jika ada di prefix, maka masukkan ke variabel prefix

jika di sufix, maka masukkan ke variabel sufix

selain itu, masukkan ke variabel name

 

 

 

    Dim i, prefix, the_name, suffix

    

    For i = 0 To UBound(nm_split)

        

        If IsInArray(CStr(nm_split(i)), arr_prefix) Then

            prefix = prefix & " " & nm_split(i)

        ElseIf IsInArray(CStr(nm_split(i)), arr_suffix) Then

            suffix = suffix & " " & nm_split(i)

        Else

            the_name = the_name & " " & nm_split(i)

        End If

    

    Next i

 

 

 

selanjutnya hasil akhirnya bisa di cek :

 

 

    Debug.Print "Prefix : " & Trim(prefix)

    Debug.Print "Name   : " & Trim(Replace(the_name, ",", ""))

    Debug.Print "Sufix  : " & Trim(suffix)

 

 

dan ini hasilnya di immediate window:

 

SplitName "Prof. Dr. Bambang Raharjo, SH. MH."

Prefix : Prof. Dr.

Name   : Bambang Raharjo

Sufix  : SH. MH.

 

 

Nama procedure tersebut adalah SplitName

 

 

Untuk mengecek nilai suatu string ada dalam suatu array, ini fungsinya:

 

 

Public Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean

    IsInArray = UBound(Filter(arr, stringToBeFound)) > -1

End Function

 

 

Cara ini bisa anda kembangkan untuk mengisi field2 di suatu tabel sesuai dengan prefix, nama dan sufix nya, dengan perintah ADO/DAO.

 

silakan di cermati, dan ini fungsi lengkapnya:

 

 

 

 

Option Explicit

 

Public Sub SplitName(full_name As String)

    Dim arr_prefix

    arr_prefix = Array("Prof.", "Dr.")

    

    Dim arr_suffix

    arr_suffix = Array("SH.", "MH.")

    

    Dim nm_split

    nm_split = Split(full_name, " ")

    

    Dim i, prefix, the_name, suffix

    

    For i = 0 To UBound(nm_split)

        

        If IsInArray(CStr(nm_split(i)), arr_prefix) Then

            prefix = prefix & " " & nm_split(i)

        ElseIf IsInArray(CStr(nm_split(i)), arr_suffix) Then

            suffix = suffix & " " & nm_split(i)

        Else

            the_name = the_name & " " & nm_split(i)

        End If

    

    Next i

    

    Debug.Print "Prefix : " & Trim(prefix)

    Debug.Print "Name   : " & Trim(Replace(the_name, ",", ""))

    Debug.Print "Sufix  : " & Trim(suffix)

    

End Sub

 

Public Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean

    IsInArray = UBound(Filter(arr, stringToBeFound)) > -1

End Function

 

 

 

 

 

 

 

A.K.

 

 

 



---In belajar-access@yahoogroups.com, <ud13en@gmail.com> wrote :

Mohon bantuan teman2 milis belajar acces, bagaimana cara mencari karakter yang berada ditengah2 field.

Dalam hal ini saya mau memisahkan data misalkan satu field nama Prof. Dr. Bambang Raharjo, SH.MH. bisa dipisahkan menjadi 3 field, gelar depan : Prof. Dr. Field Nama : Bambang Raharjo dan Filed Gelar Belakang SH.MH.

Terima kasih sebelumnya

__._,_.___


Posted by: aksan.kurdin@gmail.com


Reply via web post

Reply to sender

Reply to group

Start a New Topic

Messages in this topic (2)

SPAM IS PROHIBITED

Visit Your Group

·                                 New Members 3



.


__,_._,___

No comments:

Post a Comment