Microsoft Excel : Menampilkan Data dari MySQL

Cara menampilkan data dari database MySQL ke dalam grid Excel dapat dengan mudah dilakukan dengan memanfaatkan salah satu tools dari MySQL yaitu MySQL for Excel yang dapat melakukan manipulasi data berupa Import, Export, dan Edit secara langsung dari aplikasi Microsoft Excel.

Opsi lain yaitu dengan menggunakan Microsoft ActiveX Data Object Library yang tersedia dalam library di semua versi Microsoft Office dan dapat menggunakan perintah SQL. Artinya, kita dapat menampilkan data layaknya objek listview atau objek datagrid, sehingga kita dapat mudah menyajikan data dalam bentuk yang telah diolah. Pada tutorial ini akan dipaparkan mengenai cara koneksi ke database MySQL dan menampilkan data ke dalam grid melalui Microsoft Excel 2007.

Membuat Koneksi Database

Koneksi, atau fungsi koneksi dari database ini sebagai pintu masuk utama untuk mengambil atau memasukkan data dari atau ke dalam database. Untuk tutorial lengkapnya dapat di baca di tutorial Microsoft Excel : Membuat Koneksi dengan MySQL

Fungsi koneksi ke MySQL :
Public cnn As ADODB.Connection
Public ServerName As String
Public DBName As String
Public UserID As String
Public Password As String

Public Function Test_Koneksi()
    ServerName = "localhost"
    DBName = "test"
    UserID = "root"
    Password = ""
     
    Set cnn = New ADODB.Connection
    cnn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver}" & _
                           ";SERVER=" & ServerName & _
                           ";DATABASE=" & DBName & _
                           ";UID=" & UserID & _
                           ";PWD=" & Password & ""
    cnn.Open
End Function

Menampilkan Data

Data akan ditampilkan apa adanya sesuai dengan data didalam tabel MySQL. Contoh data yang akan ditampilkan sebagai berikut :

NIP Nama Lengkap Alamat Jurusan
114006 Moh Imam Santoso Cirebon IPA
114007 Mulyana Ciamis Bahasa
114008 Nurkarim Tegal IPS
114009 Jaiman Kebumen IPS
114010 Maulana Jakarta Bahasa
114011 Ido Angga Chandra Negara Surabaya IPS

SQL :
CREATE DATABASE IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `test`;

CREATE TABLE IF NOT EXISTS `contact` (
  `NIP` varchar(50) NOT NULL,
  `Nama` varchar(50) DEFAULT NULL,
  `Alamat` varchar(50) DEFAULT NULL,
  `Jurusan` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`NIP`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT IGNORE INTO `contact` (`NIP`, `Nama`, `Alamat`, `Jurusan`) VALUES
 ('114006', 'Moh Imam Santoso', 'Cirebon', 'IPA'),
 ('114007', 'Mulyana', 'Ciamis', 'Bahasa'),
 ('114008', 'Nurkarim', 'Tegal', 'IPS'),
 ('114009', 'Jaiman', 'Kebumen', 'IPS'),
 ('114010', 'Maulana', 'Jakarta', 'Bahasa'),
 ('114011', 'Ido Angga Chandra Negara', 'Surabaya', 'IPS');

  1. Didalam jendela macro editor, buatlah sebuah public sub procedure dengan nama LoadData()
  2. Code :
    Public Sub LoadData()
    Application.Cursor = xlWait
    
    Call Test_Koneksi
    
    Dim a, b As Range
    Dim rs As ADODB.Recordset
    
    On Error GoTo Er
        Set rs = New ADODB.Recordset
        strsql = "select * from contact "
        rs.Open strsql, cnn, adOpenStatic
        
        Dim myArr()
        myArr = rs.GetRows()
        
        
        Dim kol, rad
        kol = UBound(myArr, 1)
        rad = UBound(myArr, 2)
        
        For k = 0 To kol
                ActiveSheet.Range("B8").Offset(0, k).Value = rs.Fields(k).Name
            For l = 0 To rad
                ActiveSheet.Range("B8").Offset(l + 1, k).Value = myArr(k, l)
                DoEvents
            Next l
        Next k
        
        rs.Close
        Set rs = Nothing
        
        cnn.Close
        Set cnn = Nothing
        Application.Cursor = xlDefault
    
    Er:
    
    Select Case Err.Number
        Case 3021
        MsgBox "Data not available", vbInformation
    End Select
    
    Application.Cursor = xlDefault
    End Sub
  3. Buatlah sebuah CommandButton untuk menjalankan sub procedure yang telah dibuat diatas
  4. Gantilah nama dari CommandButton diatas dengan nama "Load Data" ->
  5. Double klik CommandButton diatas, lalu masukkan kode dibawah :
  6. Call LoadData
  7. Selesai



Baca Juga :