COMPARE EXCEL DENGAN DATABASE SERVER (MYSQL / SQL SERVER)

huyyyy guuuuuysss..
gue kembali lagi .. haha

kali ini gue akan membuat tutorial untuk membandingkan data pada excel
dengan data pada database server (MYSQL)

pertama..
kalian harus punya codingan dasar yang pernah saya buat
yaitu MEMBUAT KONEKSI EXCEL KE DATABASE SERVER MENGGUNAKAN ADODB << klik untuk tutorialnya..

kedua..
pastikan dan HARUS.. HARUSS. HAAARUUUUSSSS..
kolom header nya harus sama dengan yang ada di DATABASE..
seperti ini..

oke.. setelah punya semua..
ikuti langkah2 berikut.. karna kita hanya mengedit coding yang sudah ada..



berikut gue lampirin coding an nya juga..



Option Explicit

Sub writeLog(str As String)
tbLog.Text = tbLog.Text & vbNewLine & str
tbLog.SelStart = Len(tbLog.Text)
End Sub

Private Sub CommandButton1_Click()

' pertama kalian add reference ADODB  nya..
' oiyaaa gan..
' pastikan driver mysql odbc kalian sudah di install ya
' untuk cek nya bisa kalian cek di windows >> odbc
' seperti berikut..
' jika kalian belun install link download nya saya cantumkan di deskripsi ya
' plus link download database mysql nya jika kalian belum punya..
' lanjut ke koding ya..

Dim conn As New ADODB.Connection
Dim record_set As New ADODB.Recordset
Dim column_name As ADODB.Field
Dim i As Integer

' --- mulai edit disini ---
Dim shData As Worksheet
Dim shCompare As Worksheet

Application.DisplayAlerts = False
Set shData = ThisWorkbook.Worksheets("data")
Set shCompare = ThisWorkbook.Worksheets.Add(, shData)
shCompare.Name = "compare"

Dim rngDatas As Range
Dim rngCompares As Range
Set rngDatas = shData.Range("A1")
Set rngCompares = shCompare.Range("A1")
rngCompares.CurrentRegion.ClearContents
' --- selesai edit ---

' nah ini connection string untuk MYSQL
conn.ConnectionString = "driver={mysql odbc 3.51 driver};server=127.0.0.1;database=asaltulisajedb;uid=root;password=;"

' jika kalian memakai MICROSOFT SQL SERVER ubah connection string nya menjadi
' conn.ConnectionString = "driver={sql server native client 11.0};server=127.0.0.1;database=asaltulisajedb;uid=root;pwd=;"
' oke..

conn.ConnectionTimeout = 40
conn.Open

' kita masukan query untuk select semua data pada table 'tbl_kota_ind'
' 'tbl_kota_ind' bisa kalian ganti dengan nama table kalian ya guuuyysss...
record_set.Open "select * from tbl_kota_ind", conn

For Each column_name In record_set.Fields
    rngCompares.Offset(0, i).Value = column_name.Name 'edit disini
    i = i + 1
Next

rngCompares.Offset(1, 0).CopyFromRecordset record_set 'edit disini
record_set.Close
Set record_set = Nothing

conn.Close
Set conn = Nothing

' --- mulai edit disini ---
Set rngDatas = rngDatas.CurrentRegion
Set rngCompares = rngCompares.CurrentRegion

rngDatas.Sort rngDatas(1, 1), xlAscending
rngCompares.Sort rngCompares(1, 1), xlAscending

'mulai compare
If rngDatas.Columns.Count <> rngCompares.Columns.Count Then
    writeLog "jumlah kolom tidak sama."
    GoTo exitLabel
End If

If rngDatas.Rows.Count <> rngCompares.Rows.Count Then
    writeLog "jumlah row tidak sama."
    GoTo exitLabel
End If

Dim x As Integer
Dim y As Integer
For y = 1 To rngDatas.Rows.Count
    For x = 1 To rngDatas.Columns.Count
        DoEvents
        If rngDatas(y, x).Value = rngCompares(y, x).Value Then
            writeLog rngDatas(y, x).Address & " oke."
        Else
            writeLog rngDatas(y, x).Address & " tidak sama."
        End If
    Next x
Next y

exitLabel:
writeLog "selesai."
shCompare.Delete ' jika kalian tidak ingin menghapus sheet data yang dari database
                    ' kalian isa command coding ini
Application.DisplayAlerts = True

Set rngCompares = Nothing
Set rngDatas = Nothing
Set shCompare = Nothing
Set shData = Nothing
' --- selesai edit ---

' okeee.. kita test..
End Sub


oke.. sekian dulu tutorial dari saya.. mudah bukan..

salam #ExcelSakti #HappyCoding
#AsalTulisAje

Comments