Membuat Userform input dengan data penyimpanan di Excel dengan Format table tentu akan berbeda dalam pembuatannya dengan Excel yang bertipe range.
Karena Table adalah sebuah object, tentu saja dalam scriptnya akan banyak menggunakan object.
Object yang digunakan namanya adalah Listobject
.
Seperti yang sudah dijelaskan pada CRUD dengan Worksheet Range, untuk membuat Aplikasi ini ada beberapa tahap yang harus dilalui
Proses pembuatan database bisa langsung dibuat di Worksheet Excel dengan menggunakan Format table.
Untuk Format Table bisa ditambahkan melalui Insert – Table.
Kemudian buat data seperti dibawah ini
Setelah table dibuat, yang perlu diperhatikan adalah nama dari tablenya, ini harus diingat karena nanti akan digunakan didalam coding.
Proses pembuatan Form masih sama caranya dengan metri sebelumnya dan tidak ada perbedaan.
Tambahkan beberapa control untuk kebutuhan Input sesuai dengan kebutuhan database.
Contoh Userform bisa dibuat seperti dibawah ini.
Pembuatan coding dimulai dari deklarasi Global untuk Object tabel,
Variable Tbl dibuat global agar bisa digunakan oleh banyak Subrutine
Const myApps As String = "Aplikasi Input Table" Dim Tbl As ListObject
Selanjutkan coding dilanjutkan untuk mengisi combobox dan juga mengisi nama table yang digunakan, simpan script di Userform Initialize
Private Sub UserForm_Initialize() CBJurusan.List = Array("Teknik", "Manajemen", "Bisnis") Set Tbl = Sheet1.ListObjects("Table1") End Sub
Untuk menyimpan data bisa dibuat satu satu atau mengisi sekaligus dengan menggunakan array. Untuk mengisi dengan array script bisa dibuat seperti dibawah ini
Private Sub BTSimpan_Click() Dim DTRow As ListRow Dim Isi As Variant If Tbl.ListRows(1).Range(1) = "" Then Set DTRow = Tbl.ListRows(1) Else Set DTRow = Tbl.ListRows.Add End If 'cara 1: Satu satu '--------------------------- 'DTRow.Range(1) = TBNim.Text 'DTRow.Range(2) = TBNama.Text 'DTRow.Range(3) = IIf(OPPerempuan, "Perempuan", "Laki-laki") 'DTRow.Range(4) = TBAlamat.Text 'DTRow.Range(5) = CBJurusan.Text 'cara 2: dengan array Isi = Array(TBNim.Text, TBNama.Text, _ IIf(OPPerempuan, "Perempuan", "Laki-laki"), _ TBAlamat.Text, CBJurusan.Text) DTRow.Range.Value = Isi MsgBox "Data Berhasil disimpan!", vbInformation, myApps End Sub