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
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 MySQLFungsi 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 FunctionMenampilkan 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');- Didalam jendela macro editor, buatlah sebuah public sub procedure dengan nama LoadData() Code :
- Buatlah sebuah CommandButton untuk menjalankan sub procedure yang telah dibuat diatas
- Gantilah nama dari CommandButton diatas dengan nama "Load Data" ->
- Double klik CommandButton diatas, lalu masukkan kode dibawah :
- Selesai
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
Call LoadData