Wa'alaikumussalam Wr. Wb. Coba baris open recordset diubah menjadi : rs.Open strsql, conn, adOpenKeyset, adLockOptimistic kemudian query diubah menjadi : SELECT pass FROM [user]
Wassalamu'alaikum Wr. Wb. Kid. 2013/4/18 Rahmat Hermawan <ione_1...@yahoo.com> > ** > > > Assalamualaikum.. > > Terimakasih Mr. Kid atas pencerahannya... > Saya sudah memahami cara mengisi nilai dari cell excel ke field pada tabel > di MySQL, tapi kok kebalikannya ga bisa ya? saya sudah mencoba script yang > diberikan Mr. Kid dengan penyesuaian pada nama tabel dan nama fieldnya, > tapi pada script "if rs.recordcount>0 then", selalu masuk ke "else" > (selalu bernilai 0) padahal data di tabel MySQL ada. > Mungkin fokus permasalahannya saya tuangkan ke script VBA pada file excel > yang saya lampirkan. > Pada file itu bila kita klik tombolnya akan selalu muncul pesan "data > belum ada" yang menunjukkan data tidak ada sama sekali, apa ada yang salah > pada script ini? database pada phpmyadmin saya print scrint dan saya > lampirkan juga. > > Mohon pencerahannya lagi Master... > > Untuk koneksi database dengan komputer berbeda dalam 1 jaringan, setelah > googling sana-sini sampe hampir stress, Alhamdulillah sudah berhasil.. > hehehe.. > > Sekali lagi terima kasih yang sebesar-besarnya.. > Wassalam. > ------------------------------ > *From:* Mr. Kid <mr.nm...@gmail.com> > *To:* BeExcel <belajar-excel@yahoogroups.com> > *Sent:* Sunday, April 14, 2013 10:30 PM > *Subject:* Re: [belajar-excel] excel dengan database mysql > > > 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 <ione_1...@yahoo.com> > > ** > > 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.... > > > > > >