Skip to main content

Fungsi CreateObject di MS Access

Di Access, fungsi CreateObject digunakan untuk menampilkan referensi ke sebuah objek ActiveX.

Sintaks penulisan fungsi CreateObject adalah sebagai berikut:

CreateObject (Class [, Servername])

Keterangan:

Class: wajib diisi, berupa tipe data Variant (String). Class merupakan nama aplikasi dari objek yang akan dibuat.
Servername: Tidak wajib diisi, berupa tipe data Variant (String). Servername adalah nama server jaringan di mana objek akan dibuat. Jika Servername kosong, server jaringan berada di kommputer lokal.

Sintaks penulisan Class adalah sebagai berikut:

appname.objecttype

dalam hal ini, appname.objecttype mempunyai beberapa bagian:

appname: wajib diisi, tipe data Variant (String), merupakan nama aplikasi, misalnya, Excel, Word, dan sebagainya.
objecttype: wajib diisi, tipe data Variant (String), merupakan tipe atau class dari objek yang ingin dibuat, msalnya worksheet, toolbar, dan sebagainya.

Untuk membuat objek ActiveX, kita menggunakan fungsi CreateObject seperti contoh berikut ini.
' Deklarasi sebuat objek di Worksheet Excel
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
Kode VBA di atas digunakan untuk membuat objek worksheet/spreadsheet Excel. Setelah itu kita menggunakan objek di atas untuk memperbarui data di dalam worksheet. Contohnya seperti berikut ini.

Catatan: Atur  referensi VBA ke Microsoft Excel (nomor versi) Object Library, melalui menu Tools lalu pilih References... dan beri tanda centang pada Microsoft Excel (nomor versi) Object Library.
' menampilkan aplikasi Excel melalui Application object.
ExcelSheet.Application.Visible = True
' mengisi data dalam sebuah cell.
ExcelSheet.Application.Cells(1, 1).Value = "Sel A1, baris 1 kolom 1 excel"
' menyimpan excel dengan nama C:\test.xls.
ExcelSheet.SaveAs "C:\TEST.XLS"
' menutup Excel dengan metode Quit dalam Application object.
ExcelSheet.Application.Quit
' mengosongkan kembali objek yang sudah ditetapkan.
Set ExcelSheet = Nothing
Mendeklarasikan variabel objek seperti pada pernyataan "Dim ExcelSheet As Object" dapat diartikan oleh Access sebagai referensi ke tipe objek apa pun, karena objek pada pernyataan itu tidak ditujukan secara spesifik. Padahal, objek dalam VBA Access bisa bermacam-macam, ada objek Excel, File, Word, PDF, dan lain sebagainya.

Supaya tidak "terlihat bingung", adalah lebih baik bila deklarasi dibuat lebih spesifik, mengacu pada objek yang sudah ditentukan. Contohnya seperti berikut ini.
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
xlBook.Application.Visible = True
xlSheet.Cells(1, 1).Value = "Sel A1, baris 1 kolom 1"
xlBook.SaveAs "C:\TEST1.XLSX"
xlBook.Application.Quit
Set xlBook = Nothing
Referensi objek spesifik ke Excel seperti contoh di atas, dari sisi kinerja, akan dieksekusi dengan lebih cepat dari pada objek yang sifatnya umum.

Selain objek aplikasi (Excel, Word, dsb), kita juga bisa membuat objek untuk sebuah komputer jaringan lokal. Komputer di jaringan lokal ini berupa nama komputer seperti "\\Komputer1", "\\PCDesktop2", dan sebagainya. Dalam contoh itu, nama komputer adalah Komputer1 dan PCDesktoop2.

Contoh berikut ini dapat digunakan untuk menampilkan aplikasi excel di komputer jaringan lokal yang bernama PCDesktop2.
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "PCDesktop2")
Debug.Print xlApp.Version
Fungsi CreateObject digunakan ketika tidak ada objek lain yang sedang berjalan.Jika ada objek lain sedang berjalan, maka hanya ada satu objek itu yang dibuat.

Berikut ini adalah contoh kode VBA dalam penggunaan fungsi CreateObject untuk mengatur referensi (xlApp) ke Excel. Kode VBA di bawah ini menggunakan referensi untuk mengakses properti Visible dari Excel. Setelah itu, untuk keluar dari Excel, kode VBA menggunakan metode Excel Quit. Terakhir, supaya dapat menggunakan objek lain, maka objek yang sudah ada harus dikosongkan dengan pernyataan "Nothing".
Function contohCreateObject()
  Dim xlApp As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim xlSheet As Excel.WorkSheet
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets(1)
  xlBook.Application.Visible = True
  xlSheet.Cells(1, 1).Value = "Sel A1, baris 1 kolom 1 excel"
  xlBook.SaveAs "C:\TEST1.XLSx"
  xlBook.Application.Quit
  Set xlApp = Nothing
End Function
Terakhir, selalu akhiri pernyataan set sebuah objek dengan menggunakan perintah berikut ini:
Set .... = Nothing
supaya tidak ada objek yang menggantung di memori sementara yang dapat mengganggu kinerja komputer. Dalam contoh di atas, perintah Set xlBook = Nothing, segera setelah pernyataan xlBook.Application.Quit, akan mengosongkan semua objek yang diatur dalam workbook.


Comments

Posting Terpopuler

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access