Catetan

QUERY DATA DI EXCEL DENGAN KODE SQL 3

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...
  1. 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
  2. pada Jendela Makro pilih menu Tools --> Reference --> Centang Microsoft ActiveX Data Objects 2.5 Library















  3. 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

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.

3 comments:

Anonim

24 Jun 2011 19.16.00
haloow
Anonim

12 Jun 2012 21.15.00
hallo salam kenal,
untuk tips di atas sangat bagus sekali,hanya saja ketika data yang diquery bukan data teks misal berbentuk tanggal muncul pesan error, mohon pencerahannya...
ICT_TIKSPANDABPP

1 Jun 2017 12.48.00
Saya terlambat konek mohon ijin share pak admin

Posting Komentar