Thursday, January 09, 2014

Modul VBA: Membuat Fungsi Pengggabung Teks Serba Guna di Ms. Access

Pada kesempatan ini, saya akan membahas bagaimana cara membuat Modul VBA di Ms.Access yang berfungsi untuk menggabungkan 2 teks/2 kalimat menjadi satu dengan atau tanpa pemisah.

Apa kegunaan fungsi penggabung teks?

Sebagai contoh ketika kita membuat form yang berkaitan dengan data siswa, kita akan kesulitan untuk membuat TextBox untuk TTL (Tempat, Tanggal Lahir), misal TextBox dengan format: Grobogan, 11 November 1992, padahal untuk Control Source untuk Tempat berasal dari field yang berbeda dengan field Tanggal Lahir.

Contoh tabelnya sebagai berikut:


Ketika kita membuat TextBox TTL pada form maka alternatif yang bisa digunakan adalah sebagai berikut:
1. Menggunakan 3 TextBox
2. Menggunakan 1 TextBox dengan Expression Builder
3. Menggunakan 1 TextBox dengan fungsi Penggabung Teks


Pertama, menggunakan 3 TextBox. 
Contoh:

Buat 1 Label dengan Caption TTL:
Buat 3 TextBox
-TextBox pertama Control Source pilih TempatLahir
-TextBox kedua Control Source di isi =","
-TextBox ketiga Control Source pilih TanggalLahir


Hasilnya terbaik yang dapat diperoleh seperti berikut :
-Tanpa border
-dengan border


Opsi Kedua, menggunakan 1 TextBox dengan Expression Builder. 
Contoh:


Caranya:
Buat 1 Label dengan Caption TTL:
Buat 1 TextBox dengan Control Source =[TempatLahir] & ", " & Format([TanggalLahir],"Long Date")

Hasilnya:
-Tanpa border:

-Dengan border:

Jika dibandingkan opsi pertama, opsi kedua nampak lebih praktis. Dari segi hasil juga lebih rapi daripada opsi pertama.

Opsi ketiga dengan membuat 1 TextBox dan Module Fungsi Penggabung 2 Kata/Kalimat/Field Value.

Langkah-langkahnya:
1. Buat Module Fungsi Penggabung Teks
-Klik Tab Create, pilih Module

-akan muncul jendela Visual Basic for Application
-Ketikan/copy paste kode berikut pada Module1


Option Compare Database



Public Function periksaTeks(a) As Boolean

    periksaTeks = True

    On Error Resume Next

    Select Case True

        Case IsEmpty(a)
        Case IsNull(a)
        Case IsNumeric(a)
              If a = 0 Then
                periksaTeks = True
                Else
                periksaTeks = False
                End If
        Case Nz(a, "") = ""
        Case Else
            periksaTeks = False
    End Select
End Function

Public Function penggabung2kata(a, b, c)
If periksaTeks(c) Then c = " "
    On Error Resume Next
    Select Case True
        Case periksaTeks(a) And periksaTeks(b)
            penggabung2kata = ""
        Case periksaTeks(a)
            penggabung2kata = b
        Case periksaTeks(b)
            penggabung2kata = a
        Case c = "LF"
            penggabung2kata = a & vbCrLf & b
        Case Else
            penggabung2kata = a & c & b
    End Select
End Function

Sub contoh()
    Dim TempatLahir As String
    Dim TanggalLahir As String
    Dim NamaDepan As String
    Dim NamaBelakang As String
    
    NamaDepan = "Trisna"
    NamaBelakang = "Novi Ashari"
    TempatLahir = "Grobogan"
    TanggalLahir = "11 November 1992"
    
    Debug.Print "Nama:  " & penggabung2kata(NamaDepan, NamaBelakang, " ")
    Debug.Print "TTL:   " & penggabung2kata(TempatLahir, TanggalLahir, ", ")
End Sub

-Tekan Ctrl+S untuk menyimpan module
-Simpan Module1 dengan nama Module_Teks
-Kemudian coba klik Run
-Maka Sub Contoh akan menghasilkan teks di kotak Immediate. Sub Contoh adalah Macro buatan sendiri.



-Untuk kode mulai sub contoh bersifat optional.
-Setelah kita coba module dan berfungsi maka kita lanjut ke cara penggunaan fungsi.
-keluar dari Microsoft Visual Basic For Application

Penggunaan Fungsi Penggabung Kata

contoh:

Desain Tabel



Desain Form

Buat 2 label, pertama dengan Caption Nama:, yang kedua dengan Caption TTL:
Buat 2 TextBox
-TextBox pertama untuk nama lengkap dengan Control Source kode berikut:

=penggabung2kata([NamaDepan],[NamaBelakang]," ")

-TextBox kedua untuk TTL dengan Control Source kode berikut:

=penggabung2kata([TempatLahir],Format([TanggalLahir],"Long Date"),", ")

Perhatikan karakter yang berlatar belakang kuning.

-TextBox pertama, karakter tersebut adalah " " (tanda kutip, spasi, tanda kutip). Artinya pemisah yang digunakan dalam TextBox pertama adalah karakter spasi.

-TextBox kedua, karakter tersebut adalah ", " (tanda kutip ,koma , spasi, tanda kutip). Artinya pemisah yang digunakan dalam TextBox pertama adalah karakter koma kemudian spasi.

-Kode Format([TanggalLahir],"Long Date") ini hanya berfungsi untuk mengubah format tampilan tanggal. Secara default tampilan date berformat 11/11/1992 sedangkan ketika ditambahkan kode Format, maka hasilnya 11 November 1992.

-Hasil dari kode di atas ketika di aplikasikan di form adalah sebagai berikut:



Format fungsi penggabung dua kata adalah sebagai berikut:

penggabung2kata(a,b,c)

Catatan: tanda ; atau , antara a b c disesuaikan dengan format di Expression Builder

a=kata/kalimat pertama
b=kata/kalimat kedua
c=kata/kalimat/karakter pemisah.

Setiap ingin menggunakan fungsi tersebut pada TextBox, tinggal ketik =penggabung2kata(a,b,c)

nilai a, b dan c disesuaikan dengan kebutuhan.


Nah itulah beberapa contoh kegunaan fungsi penggabung dua kata atau kalimat.

Semoga tutorial ini bermanfaat. Selamat mencoba :).


File latihan bisa diunduh di link berikut:



By Trisna Novi Ashari - Universitas Negeri Semarang '11





2 comments:

  1. halo, saya mau tanya untuk VBA autonumber mau kombinasi gimana ya ?
    misal CUST001. tengkyu

    ReplyDelete
  2. The King Casino - CommunityKhabar
    The King Casino is the only casino near communitykhabar the casino. All casino games are poormansguidetocasinogambling legal and the game variety is deccasino huge! wooricasinos.info The games are also available at any https://febcasino.com/review/merit-casino/ of the

    ReplyDelete