Saturday, November 11, 2017

Dasar Macro - Menampilkan nilai kolom yang bersebelahan pada Listbox dan Combobox

Bismillah. Assalamualaikum.

Tutorial ini berasumsi pembaca sudah paham bagaimana mengatur Property pada control userform. Untuk lebih jelasnya, silahkan download file contohnya disini.

Control ListBox dan ComboBox adalah 2 control yang paling sering digunakan pada sebuah aplikasi sebagai fasilitas yang diberikan kepada user untuk memilih beberapa pilihan. Contoh kasus yang sering terjadi pada saat kita menggunakan kedua control tersebut pada Userform adalah menampilkan nilai pada kolom-kolom disebelahnya sesuai nilai yang terpilih khusus nya pada ListBox ataupun ComboBox yang berkolom lebih dari satu atau Multi-columns. Jadi ingat ya ? kata kunci nya adalah kolom nya lebih dari satu :).

Nah, kasus tersebut dapat diselesaikan dengan menggunakan property Column yang ada pada control ListBox dan ComboBox. Syntax atau penulisan property Column adalah Object.Column. Object dalam hal ini mengacu pada control ListBox atau ComboBox, dan argument Column adalah nilai indeks kolom pada Tabel atau Database. Kolom pertama nilai Indeks nya 0 dan kolom berikutnya adalah 1,2,3 dan seterus nya sesuai banyaknya kolom pada database.

Contoh nya seperti ini :

Dibawah ini adalah database Siswa yang terdiri dari 4 Kolom. Kolom pertama adalah Nomer Induk Siswa, Kolom kedua adalah Nama Siswa, Kolom ketiga adalah Tempat Lahir dan ke empat adalah Tanggal Lahir.

Database Siswa


Karena sifatnya yang unik maka kita menjadikan kolom pertama yaitu Nomer Induk Siswa sebagai kolom acuan nya (atau Primary Key) dan mengatur property BoundColumn nya ke angka 1, dan ColumnCount nya ke angka 4 sesuai banyak kolom dalam Database tersebut.
Nilai property lain yang harus diatur adalah RowSource. Pada file contoh, property RowSource diatur mengacu pada Range “Data”.

Property Bound dan Column Count


Jadi pada saat aplikasi dijalankan, user akan memilih nilai Nomer Induk Siswa pada ComboBox atau ListBox kemudian nilai pada kolom Nama, Tempat Lahir dan Tanggal Lahir akan muncul pada masing-masing TextBox.






Penjelasan skrip nya adalah sebagai berikut :

Untuk Combobox skrip nya diletak kan pada Event ComboBox Change. Jadi tiap kali nilai ComboBox berubah, nilai pada kolom pertama setelah kolom acuan (kolom Nama) dijadikan nilai TextBox txtNama (skrip Me.txtNama.Value = Me.ComboBox1.Column(1)).

Begitu juga untuk nilai kolom kedua setelah kolom acuan (kolom Tempat Lahir) dijadikan nilai TextBox txtTptLahir(skrip Me.txtTptLahir.Value = Me.ComboBox1.Column(2)).

Untuk kolom Tanggal Lahir (kolom ke 3 setelah kolom NIS) skripnya ditambahkan fungsi Format untuk merubah nilai String menjadi format tanggal Medium (Skrip Me.txtTglLahir.Value = Format(Me.ComboBox1.Column(3), "Medium Date"))

Hal yang sama juga berlaku untuk control ListBox yang kebetulan mempunyai property Column. Untuk ListBox, skrip diletak kan pada event Click.

Pada screenshot diatas terlihat Indeks Column nya dimulai dari angka 1 diatur ke masing-masing TextBox.

Semoga tutorial ini bermanfaat. 
Wassalam.