Hai Rahmat,

1. Bagaimana sript vba untuk memasukkan ("C3").Value pada sheet1 ini,
kedalam field "alamat" pada database mysql. Kalau dengan database excel
sendiri kan script intinya Cuma : .Cells(baris, 2) = Sheet1.Range("C3").
(dalam file yang saya lampirkan).
>> Ya betul, untuk kegiatan di Excel dalam hal membaca suatu nilai range
dan menulis ke range yang lain dapat berbentuk :
                .Cells(baris, 2).value = Sheet1.Range("C3").value
Sebelum proses tersebut, sepertinya ada proses pencarian data berdasar nama
yang diinput dalam tabel data.
Jika ada namanya, maka dilakukan proses meng-update nilai lama yang ada
dalam tabel data dengan nilai baru.
Jika tidak ada namanya, maka dilakukan proses menambah record baru dalam
tabel data.
Proses ini berlaku dimana saja ketika berkegiatan meng-input data.

>> Begitu juga ketika akan melakukan kegiatan tersebut kedalam database
yang tersimpan di database engine seperti MySQL.
Setelah Anda mendapatkan koneksi (dalam script Anda, koneksinya dimasukkan
kedalam variabel conn), maka Anda perlu melakukan proses-proses seperti
tadi. Berhubung bahasa komunikasi data adalah menggunakan SQL, maka
dituntut untuk menguasai bahasa SQL (dasar-dasarnya bisa dipelajari
disini<http://www.w3schools.com/sql/>
).

Langkah pertama adalah mengetahui ada atau tidaknya record data berdasar
nama tertentu. Berarti ada proses mengambil dataset dari MySQL database
tersebut.
Jika dengan bantuan object data bernama ADO, maka kira-kira : (setelah
proses koneksi conn berhasil)
dim rs as ADODB.recordset    'deklarasi variabel dataset (recordset)
set rs=new adodb.recordset   'init recordset
'isi recordset dengan data dari sumber (MySQL hasil koneksi conn pada tabel
tertentu -> query SELECT)
rs.open "SELECT alamat FROM nama_tabel WHERE nama='" &
Sheet1.Range("C3").value & "'" , conn , adOpenKeyset
if rs.recordcount>0 then     'cek ada recordnya atau tidak
     'ada recordnya, maka update isi kolom alamat saja (oleh sebab itu yang
di-SELECT hanya kolom alamat saja)
     rs.movefirst    'ke record pertama
     rs.fields("alamat").value = Sheet1.Range("C4").value
     rs.update

    'jika update data akan menggunakan query UPDATE melalui object conn
bisa dengan script : (aktifkan script bila perlu)
    'conn.execute "UPDATE nama_tabel SET alamat='" &
Sheet1.Range("C4").value & "' " & _
               "WHERE nama='" & Sheet1.Range("C3").value & "'"
else
    'tidak ada recordnya, maka akan tambah record baru (query INSERT INTO
-> melalui object conn)
    conn.execute "INSERT INTO nama_tabel VALUES ( '" & _
               Sheet1.Range("C3").value & "','" & _
               Sheet1.Range("C4").value & "')"
endif

rs.close
conn.close

set rs=nothing
set conn=nothing


2. Aplikasi ini akan saya share sehingga bisa dibuka dari komputer mana
saja dan bersamaan dalam 1 jaringan lokal, tetapi karena variable "Server"
=  "localhost", maka akan eror pada saat dijalankan pada komputer lain
karena xampp (database) hanya di komputer dengan ip 192.168.0.1. Saya sudah
mencoba merubah settingan pada odbc connector dengan mengganti "TCP/IP
server" nya dengan 192.168.0.1 tapi selalu koneksi gagal, harus localhost
baru bisa. Bagaimana caranya agar bila dijalankan di komputer lain dalam 1
jaringan ?
>> Dalam hal kegiatan koneksi berbeda komputer dalam suatu jaringan
(network), maka perlu diperhatikan tentang :
1. IPAddress server database jika koneksi melalui TCP/IP
2. Port milik server database
3. Ijin dari Operating System (Firewall dalam penggunaan Port)
4. bunyi kalimat ajakan berkoneksi (Connection String) -> untuk MySQL bisa
dilihat disini bagian TCP/IP
Port<http://www.connectionstrings.com/mysql#mysql-connector-odbc-5-1>
5. komputer yang mengkoneksi memiliki (ter-install) library data privider
(seperti MySQL melalui ODBC nya)

Setelah koneksi terbentuk dan stabil, maka kegiatan transaksi data bisa
dilakukan menggunakan query seperti di atas tadi.

***
Oh iya, untuk komunikasi antara Excel dengan MySQL, hanya dibutuhkan :
1. Server database MySQL
2. library Data Provider seperti ODBC nya MySQL
3. MS ActiveX Data Object (ADO) jika ingin menggunakan ADO

Wassalam,
Kid.





2013/4/14 Rahmat Hermawan <[email protected]>

> **
>
>
> Selamat malam para master excel, saya ingin bertanya :
>
> Saya mempunyai file excel yang saya buat sebagai aplikasi input data
> (sheet 1) dan sheet 2 sebagai databasenya menggunakan VBA excel.
> (file terlampir).
> Saya ingin mengganti penyimpanan databasenya tidak dengan excel lagi,
> tetapi dengan database mysql.
> Saya sudah menginstal xampp dan odbc connector, saya sudah berhasil
> menghubungkannya juga dengan script :
>
> Dim conn As New ADODB.Connection
> Set conn = New ADODB.Connection
> conn.Open "DRIVER={MySQL ODBC 5.2w Driver}" & _
>   ";SERVER= localhost" & _
>   ";database= database_ho" & _
>   ";user= root" & _
>   ";password= ione123"
>
> Pertanyaannya :
>
> 1. Bagaimana sript vba untuk memasukkan ("C3").Value pada sheet1 ini,
> kedalam field "alamat" pada database mysql. Kalau dengan database excel
> sendiri kan script intinya Cuma : .Cells(baris, 2) = Sheet1.Range("C3").
> (dalam file yang saya lampirkan).
>
> 2. Aplikasi ini akan saya share sehingga bisa dibuka dari komputer mana
> saja dan bersamaan dalam 1 jaringan lokal, tetapi karena variable "Server"
> =  "localhost", maka akan eror pada saat dijalankan pada komputer lain
> karena xampp (database) hanya di komputer dengan ip 192.168.0.1. Saya sudah
> mencoba merubah settingan pada odbc connector dengan mengganti "TCP/IP
> server" nya dengan 192.168.0.1 tapi selalu koneksi gagal, harus localhost
> baru bisa. Bagaimana caranya agar bila dijalankan di komputer lain dalam 1
> jaringan ?
>
> Bagi master2 excel... Mohon pencerahannya....saya sudah googling kesana
> kemari tapi tidak ketemu... Sebelumnya terimakasih yang sebesar-besarnya....
>
>  
>

Kirim email ke