sebelumnya aku pernah membuat postingan mengenai MEMBUAT QUERY DI EXCEL, tetapi dalam postingan tersebut prosesnya hanya menampilkan kode sql dari hasil query secara manual di excel.
Nach... Sekarang bikin lagi tulisan mengenai query data di excel dengan kode sql yang ada di cell dan bisa diotak-atik serta tampilan hasil query juga di berada di range yang telah ditentukan.
Untuk melakukan proses ini ada beberapa tahap yang harus dilakukan...
Untuk melihat contoh file-nya bisa DOWNLOAD disini.
Kode ini aku dapatkan pada saat browsing diineternet, cuman aku lupa linknya dimana.. padahal bagus tuch... karena file ini aku temuin pada saat bersih-bersih folder komputer... yach supaya gak lupa dan ilang lagi... aku bikin postingan aja.
Nach... Sekarang bikin lagi tulisan mengenai query data di excel dengan kode sql yang ada di cell dan bisa diotak-atik serta tampilan hasil query juga di berada di range yang telah ditentukan.
Untuk melakukan proses ini ada beberapa tahap yang harus dilakukan...
- Memberikan nama Database yang ada dengan cara Insert --> Name --> Define, ketikkan Nama Database pada Names in workbook dan pilih range pada Refers To
Dalam hal ini dibuat dua database dengan nama DATA1 dan DATA2 - pada Jendela Makro pilih menu Tools --> Reference --> Centang Microsoft ActiveX Data Objects 2.5 Library
- setelah itu insert module dan masukkan kode makro di bawah ini
Public Sub QueryWorksheet(szSQL As String, rgStart As Range, wb As String)
Dim rsData As ADODB.Recordset
Dim Koneksi As String
On Error GoTo ErrHandler
Application.StatusBar = "Data Sedang di Proses ....."
'setting koneksi dengan workbook master
Koneksi = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & wb & ";" & _
"Extended Properties=Excel 8.0;"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, Koneksi, adOpenForwardOnly, adLockReadOnly, adCmdText
'Cek data paling akhir
If Not rsData.EOF Then
'memasukkan data yang ada
rgStart.CopyFromRecordset rsData
Else
MsgBox "Tidak ada data yang harus diquery", vbCritical
End If
'menutup koneksi
rsData.Close
Set rsData = Nothing
Application.StatusBar = False
Exit Sub
ErrHandler:
'Jika ada kesalahan kode query
MsgBox "Query tidak bisa dilakukan, coba cek sql statement-nya"
Set rsData = Nothing
Application.StatusBar = False
End Sub
Sub testsql()
Dim rgdatasql As Range
Dim rgcodesql As String
rgcodesql = Range("B3").Text 'range untuk kode sql
Set rgdatasql = Range("B9") 'range untuk data hasil query sql
rgdatasql.Resize(30, 4).ClearContents 'menghapus data hasil query
'menampilkan hasil query sesuai dengan kode sql yang ada
QueryWorksheet rgcodesql, rgdatasql, ThisWorkbook.FullName
End Sub
Sub resik()
Dim rgdatasql As Range
Set rgdatasql = Range("B9")
'menghapus data di range B9 s/d e38
rgdatasql.Resize(30, 4).ClearContents
End Sub
Dim rsData As ADODB.Recordset
Dim Koneksi As String
On Error GoTo ErrHandler
Application.StatusBar = "Data Sedang di Proses ....."
'setting koneksi dengan workbook master
Koneksi = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & wb & ";" & _
"Extended Properties=Excel 8.0;"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, Koneksi, adOpenForwardOnly, adLockReadOnly, adCmdText
'Cek data paling akhir
If Not rsData.EOF Then
'memasukkan data yang ada
rgStart.CopyFromRecordset rsData
Else
MsgBox "Tidak ada data yang harus diquery", vbCritical
End If
'menutup koneksi
rsData.Close
Set rsData = Nothing
Application.StatusBar = False
Exit Sub
ErrHandler:
'Jika ada kesalahan kode query
MsgBox "Query tidak bisa dilakukan, coba cek sql statement-nya"
Set rsData = Nothing
Application.StatusBar = False
End Sub
Sub testsql()
Dim rgdatasql As Range
Dim rgcodesql As String
rgcodesql = Range("B3").Text 'range untuk kode sql
Set rgdatasql = Range("B9") 'range untuk data hasil query sql
rgdatasql.Resize(30, 4).ClearContents 'menghapus data hasil query
'menampilkan hasil query sesuai dengan kode sql yang ada
QueryWorksheet rgcodesql, rgdatasql, ThisWorkbook.FullName
End Sub
Sub resik()
Dim rgdatasql As Range
Set rgdatasql = Range("B9")
'menghapus data di range B9 s/d e38
rgdatasql.Resize(30, 4).ClearContents
End Sub
Untuk melihat contoh file-nya bisa DOWNLOAD disini.
Kode ini aku dapatkan pada saat browsing diineternet, cuman aku lupa linknya dimana.. padahal bagus tuch... karena file ini aku temuin pada saat bersih-bersih folder komputer... yach supaya gak lupa dan ilang lagi... aku bikin postingan aja.
4 comments:
untuk tips di atas sangat bagus sekali,hanya saja ketika data yang diquery bukan data teks misal berbentuk tanggal muncul pesan error, mohon pencerahannya...
solder uap
Posting Komentar