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 =
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 :
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 =
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
• | • | • | • |
SPAM IS PROHIBITED
• Privacy • Unsubscribe • Terms of Use
.
__,_._,___
No comments:
Post a Comment