28 April 2011

Menurut pendapatku pribadi, koneksi VB6 dan MySQL menggunakan ODBC terasa kurang nyaman. Aku lebih suka pakai VBMySQLDirect.
vbmysqldirect.zip
(update: ouch original link is broken, download here)

Pertama-tama download terlebih dahulu VBMySQLDirect, dengan link diatas, kemudian install di PC/Laptop-mu. Berikut ini contoh pembuatan koneksinya:
Buatlah sebuah project VB baru, pilih VB Enterprise Edition Controls kemudian klik Open.



Sebuah project baru dan sebuah form akan terbentuk.


Tambahkan referensi VBMySQLDirect ke project dengan cara klik menu
Project --> References...


Akan muncul Dialog Box Reference, cari VB MySQL Direct v1.0 di list Available References. Cek pada check box sebelah kirinya dan klik OK.
Pastikan sudah menginstall  MySQL Direct v1.0 yah, klo ngga ga akan muncul reference nya.


Kita akan membuka koneksi ke database latihan di server local (localhost). Jika kita tidak melakukan setting lebih lanjut pada server MySQL kita biasanya secara default nama database user adalah root dengan password kosong.Kita akan membuka koneksi database saat membuka Form1. Dan menutup koneksi saat Form1 tertutup.Pada bagian paling atas setiap form, module, dan report selalu tambahkan code:
Option Explicit



Kode tersebut berfungsi untuk mendeteksi error variable tanpa deklarasi , sangat berguna pada proses pembuatan aplikasi untuk meminimalisir error terjadi pada saat aplikasi digunakan nanti.Buat sebuah variable koneksi bernama oConn dengan cara mengetikan code sebagai berikut:

Dim oConn As MYSQL_CONNECTION

Lalu buat 4 buah variable string untuk memuat data-data koneksi ke database server
Dim server As String 'variabel string untuk server database

Dim UserDB As String 'variabel string untuk user login mysql
Dim password As String 'variabel string untuk password mysql 
Dim database As String 'variabel string untuk namadatabase

Tentukan nilai-nilai 4 variable tersebut pada event Form_load
server = "localhost"

UserDB = "root"
password = ""
database = "latihan"

Buka koneksi dengan code berikut:
SET oConn = New MYSQL_CONNECTION
oConn.OpenConnection server, UserDB, password, database

Tambahkan pesan yang menyatakan koneksi telah terbuka:
MsgBox "Anda telah terkoneksi dengan database " & database

Tutup koneksi pada event Form_QueryUnload
oConn.CloseConnection
Set oConn = nothing

Setelah itu coba Anda Run project aplikasi yang baru saja Anda buat. Jika code program telah tersusun dengan baik dan berhasil koneksi ke database maka akan muncul pesan seperti di bawah ini:
Kode lengkapnya:

Click here if you like this article.


Artikel Selanjutnya:

68 comments:

Semot Ireng said...

Assalamu'alaikum.., Mbak rani mbak rani.. :) salam kenal.., aq kmrn dah nyoba2 script itu.., cmn hasilnya koq gk bs smua record dimunculin y.., yg muncul cmn 1 record tp diulang2.. :( bs minta contoh script akhirnya g..?? :) klo bs tlong kirim ke emailq : bl4ck4nt@yahoo.com.., makasih sblmnya.. :)

rani-irsan said...

Wa alaikumsalam,

sorii, ada yang kelewat rsMySQL.MoveNext
coba cek lagi di http://rani-irsan.blogspot.com/2011/04/2-menampilkan-data-di-datagrid.html
udah dibenerin
udah rani kirim ke email ya contoh project nya, klo ada pertanyaan by YM aja ya...

Ronsi said...

Tanya Bu...
Kalo MySQL nya ngga di local, bisa ngga ?

rani-irsan said...

Jawab Pa...
Bisa, rani pernah connect ke PC yang ada di cirebon. Cuman ada beberapa settingan internyet yang harus diubah

Ronsi said...

Settingan yg mana ya ?
Bisa kasih contoh :p

rani-irsan said...

Pertama di phpmyadmin (pc server)
setting privilagesnya, biar bisa di akses network.
Trus masuk ke modem (pake speedy)
Advance setup > nat > (pilih virtual circuit yang aktif) > virtual server
Tambahin deh disitu nama server (bebas buat id aja)
Portnya disesuaikan sama port phpmyadmin.
Trus coba browse http://ippublicmodem:port/phpmyadmin
klo udah bisa diakses baru coba masukan ke variable server di VB
server = "ippublicmodem"

adh1et said...

kalau boleh tau kurang nyaman dari segi apa ya mbak?

rani-irsan said...

pendapat pribadi aja sih, saat implementasi harus setting odbc di tiap PC. Klo pakai vbmysqldirect saya bisa buat UI sendiri sehingga user bisa setting koneksi sendiri.

ucha said...

mbak rani,, nanya dong,,
listing pencarian klo db nya mysql gimna ya??

sebelumnya saya pake db acces listingnya gini,,
Adodc1.RecordSource = "select* from tbl_asetbarangit where nama_barang + no_ + vendor + merk_type + jumlah_unit + tahun_pembelian + nomor_seri + nilai_perolehan + tahun_perolehan + proyek_satuan + modal_inventaris + cara_perolehan + kondisi + nomor_kontrak + tanggal_kontrak + lokasi + keterangan like '%" & tcari & "%'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox "Data Tidak Ada", vbOKOnly + vbCritical, "Informasi"

tapi kq pas diganti db mysql jadi ga bisa,, knapa ya??
mkasih ya mba,,,

rani-irsan said...

@ucha, concatenation atau penggabungan string pada mysql berbeda dengan access dan SQL server yang menggabungkannya dengan menggunakan tanda tambah (+). Sebenarnya fungsi pencarian bisa menggunakan operator or tapi klo ingin pakai cara yg mirip query sebelumnya coba pakai fungsi concat
Contoh:
"select field1, field2 from table1 where concat(field1,field2) like '" & strKeyWord & "'"

Firmansyah Maulana SN said...

siang mba rani..
mau tanya untuk kinerja/kecepatan akses bagus mana MySQL ODBC atau vbmysqldirect

makasih

rani-irsan said...

hmmm rani ngga terlibat terlalu dalam dengan MySQL ODBC :D
Pertama cari cara koneksi vb6 mysql banyak nemuin referensi dengan ODBC. Hanya entah kenapa hati kurang sreg dengan step setting nya, jadi ga pernah pake.
Rani pernah dapet referensi yang mengatakan:
"VBMySQLDirect will run 3 to 8 times faster than ADO + ODBC"
http://www.symbianize.com/archive/index.php/t-404538.html

benar apa ngga ya silahkan dicoba sendiri hehe ^_^v

ucha said...

mba nanya lagi ni,,
klo buat koneksi pake listing itu, brati adodcnya bisa dihilangkan apa ga?? trus klo adodc dihapus cara koneksi ke datagrid sama buat pencarian nya gimna,,?

kalo bisa sih kirim contoh programnya ke email ya mba,, hehe,,

maaf banyak nanya ni,,

rani-irsan said...

bisa diremove aja, cara nampilinnya ada di artikel selanjutnya:
http://rani-irsan.blogspot.com/2011/04/2-menampilkan-data-di-datagrid.html
contoh project nya mau dikirim ke mana?

ucha said...

kirim ke email ini aja mba,,
uchaartikel@gmail.com

mkasih mba

ucha said...

oiya mba kalo listing buat menyimpan sama pencarian gimna?

Bambang WS said...

salam kenal mbak rani, kalau koneksi ke database firebird *.fdbgimana? tolong bantu saya ws.bambang@yahoo.co.id)

Bambang WS said...

salam kenal mbak rani, tolong bantu saya dengan database firebird *.fdb

rani-irsan said...

Wah OOT mas bambang...
maaf kebetulah kurang familiar dengan firebird, coba tanya paman google http://www.google.co.id/search?sclient=psy-ab&hl=id&safe=off&site=&source=hp&q=firebird+database&btnG=Telusuri

btw nemu juga artikel tentang firebird, katanya sih koneksi nya palingan pake ODBC, blom nemu lagi selain itu. Klo nemu boleh donk dibagi2 :D

http://coding4ever.wordpress.com/category/database/firebird-database/

Anonymous said...

mbak gmna cranya nentuin path folder untuk menyimpan atau mngcopykan gmbar yg mysql nya dilaen pc,

rani-irsan said...

yang di PC lain gambarnya ato mysql nya? klo gambarnya ya pake folder sharing aja
klo mysql hmm... bukan folder mungkin ya...
server = "localhost" --> di ganti dengan IP yang bersangkutan
dengan catatan setting privileges-nya granted yap

Abu Farhan said...

Mbak kalau konek ke server internet bisa ga?
saya coba ngga bisa terkoneksi

rani-irsan said...

@abu farhan,
maksudnya ke web hostingkah?
klo untuk hosting biasa nya tergantung paket yg ditawarkan oleh hosting. Apakah mengizinkan remote database langsung atau tidak. Seandainya ada, biasanya juga ada settingan lebih lanjut (masalah keamanan biasanya). Detailnya silahkan tanya web hosting yang bersangkutan.
BTW, pertanyaan seperti ini udah pernah saya comment di: http://rani-irsan.blogspot.com/2011/04/4-merapikan-penulisan-code-untuk.html?showComment=1308732214976#c1635223668389343713

Abu Farhan said...

ok terima kasih atas balasan yg sangat cepat.

Dhimas Atha said...

Walah bagus kak, blognya. .
ijin nyimak yaa. .
salam kenal. .
o ya btw pas setting VB MySql direct kok kagak ada ya di vb saya, atau harus install MySql connector dulu? kalau ya itu sudah saya instal. .
mohon pencerahannya ya ka2k :D

rani-irsan said...

@Dimas Atha: yang diinstall ya VBMySQL Direct nya.
Bisa didonlod di link ini
www.vbmysql.com/wp-content/uploads/vbmysqldirect.zip

Dhimas Atha said...

Wah timakasih kakak
Fast respond yach, follow m blog ya ka2k. .

Anonymous said...

www.vbmysql.com/wp-content/uploads/vbmysqldirect.zip

link nya ko dah ga da sih mba,,

tolong bantuannya yaa, klo g krim email
bangbuce@gmail.com, terimakasih sebelumnya

rani-irsan said...

email sent to bangbuce@gmail.com

Anonymous said...

mantap,, makasih banyak mba, perfect,fast respon,, makasih makasih makasih bnyak lg yaa,,,
By: bangbuce@gmail.com

riza said...

Salam kenal

Anonymous said...

boleh minta file scriptnya ?
coba coba tapi tak ada error,
kirim ke ke beyond2050@yahoo.co.id trimaksih sebelumnya

rani-irsan said...

hah? klo ga ada error trus gimana? koq malah nyari error? :p

hydar palu said...
This comment has been removed by the author.
hydar palu said...

Boleh minta Script akhir?
Hydarpalu@yahoo.co.id
Terima kasih ats Ilmu nya RANI..

Titin Novianti said...

Kak, ajarin aq bwad login akses pake VBMySQLDirect dunk!please...

rani-irsan said...

@titin: belajar nya udah sampai mana? Insya Allah klo sempat nanti ditambahin tutorial nya.

Titin Novianti said...

Nie, sdah nyoba" kk...
tpi q biaza,x make ODBC...
Q bleh mnta tlog ndg bntu'n cara bwd login yang ake vbysqldirectny...
klu bleh sich d krim script'x k email Kk...
titindomain@gmail.com
please kk, mhon bntuannya....

muhammadnasrulloh keren said...

mau tanya mbak cara update di progam q ko' puajangya koding q pengen yang baris caranya gimana ya
mysql direct
rs.edit.mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
rs edit
mmmmmm
mmmmm
mmmmm
mmmmm
tq mbak
nas.rul21@mig33.com

Tala said...

kalo utk membuka 2 buah table di 2 buah database yg berbeda gimana ya mbak ? (1 tabel penjualan_detail di database A, 1 table stock di database B) terima kasih

rani irsan said...

Dengan asumsi Tala sudah paham tentang konsep join, coba tambahkan nama database dengan titik lalu nama tabel.
SELECT * FROM A.penjualan_detail tblA
INNER JOIN B.stock tblB ON tblA.NamaFieldKunci =
tblB.NamaFieldKunci


Coba View ini

Tala said...

ty lg mbak, kalo utk bs sharing database via internet harus pake speedy ya mbak ? kalo provider lain bs g mbak ? terima kasih

rani irsan said...

Harusnya sih bisa, cuman blom pernah coba setting nya seperti apa.
Dan satu lagi yang harus diperhatikan adalah ip public nya statis atau ngga, karena klo dinamis berarti saat connect ip nya harus berubah-ubah juga :D

Anonymous said...

mohon pencerahannya mbak rani
apa bisa mengkoneksikan vb dengan menggunakan 2 pc yg berbeda os seperti windows xp dan windows 7?

karna saat saya coba koneksi antara xp dan 7 ada muncul pesan bahwa tidak mengenali nama databasenya

kira mbak ada solusi untuk masalah saya ini? trimakasih utk bantuannya

rani irsan said...

mestinya ga masalah sih yah mengkoneksikan MySQL + VB ke 2 PC atau lebih meskipun Win XP or Win 7.
Yang perlu di cek:
- Apakah jaringan (LAN) sudah terpasang dengan benar.
- Cek security di MySQL apakah bisa diakses dari komputer client
- Cek firewall masing-masing PC.
semoga memberi pencerahan :)

Anonymous said...

Klo untuk masalah LAN dan Firewall udah saya perhatikan LAN berjalan dengan baik Firewall masing2 OS pun saya udah matikan, Klo security MySQL yang mbak maksud apa Privilagesnya??Klo itu saya udah buat jadi granted yes pada database yg saya inginkan. cm pada saat saya membuat odbcnya dan saya coba connectkan dengan odbc mysql databasenya gak ditemukan sama sekali kira2 kesalahan saya dimana yah mbak. saya menggunakan odbc mysql 5.1 pada xp

rani irsan said...

wah maaf mas klo odbc saya kurang berpengalaman, dan seperti yang saya bilang di awal posting saya kurang sreg sama ODBC.
Saya pakai VBMySQLDirect dan pengalaman saya dengan menaruh database server di Windows Server database dapat diakses dari XP maupun Win 7.
Saya juga pernah coba server database disimpan di XP dan dapat diakses dari win 7.

Anonymous said...

saya juga menggunakan vbmysqldirect tp kok tidak bisa terkoneksi dengan client sy gunakan win 7 sebagai server, xp sbagai client. pada module sdh saya deklarasikan dan di formnya juga saya sdh deklarasikan utk koneksinya tp tidak bs terkoneksikan dgn client kira2 slah saya dimana?

denis said...

ass.....salam kenal mba...
mau tanya donk...
kalo script agar data tidak menjadi redudansi dalam database bahwa menyataan data sudah tersimpan pada script ini gmana yah??
Private Sub CmdInput_Click()
If cmdInput.Caption = "&Input" Then
cmdInput.Caption = "&Simpan"
cmdEdit.Enabled = False
cmdHapus.Enabled = False
cmdTutup.Caption = "&Batal"
SiapIsi
KosongkanText
txtKode.SetFocus

Else
If txtKode = "" Or txtNama = "" Or txtAlamat = "" Or txtRt = "" Or txtRw = "" Or txtTelepon = "" Or txtPassword = "" Or cmblevel = "" Then
MsgBox "Data Belum Lengkap...!"
Else
Dim SQLTambah As String
SQL = "Insert Into user (kode_user,nama,alamat,rt,rw,telepon,password,level) values ('" & txtKode & "','" & txtNama & "','" & txtAlamat & "','" & txtRt & "','" & txtRw & "','" & txtTelepon & "','" & txtPassword & "','" & cmblevel & "')"
conn.Execute SQL
KondisiAwal
Form_Activate
End If
End If
End Sub
mohon bantuannya.....

rani irsan said...

@denis tambahkan primary key atau field unique kemudian pada code tambahkan error handler

atau sebelum proses save cek keberadaan nilai terlebih dahulu

Gioviale Ardhi said...

aku nyoba kok error dim oconn ? itu variabel apa ya ?? tadi nya saya koneksi pake odbc , tapi tiap wamp apache aku matiin program ku gak bisa konek , ini jadi kendala , makanya aku nyoba kode ini , eh malah error di dim oconn itu maksudnya gimana ?? mohon bimbingan :)

Gioviale Ardhi said...

Dim oconn As mysql_connection 'deklarasi objek koneksi mysql

atau kalok udah koneksi dengan odbc bisa ndak di setting tiap program di run conection langsung dengan database , tanpa ngidupin wamp apache ?

rani irsan said...

@Gioviale Ardhi: coba ikutin step nya dari atas, itu kan ada yang harus diinstall & ditambahkan reference nya mesti nya ga akan error saat mendeklarasikan.

asalkan service mysql jalan, gpp apache dimatiin dan control panel XAMPP di quit.

klo service mysql nya ga jalan yaaa gimana bisa connect :p

Bul Yana said...

mau nanya
tau gak source code buat sms ke hp dengan vb6
denger" sih pake MySQL & php
makasih

setia banendra said...

Ass.. mbak bisa ngak kira-2
saya ingin menenampilkan data satu tabel pake vb6, tapi data basenya MYSQL yang ada di internet

rani irsan said...

@setia: udah pernah ditanya & dijawab :D scroll-scroll ke komentar2 diatas okay!

IB Wira Negara said...

Mbak Rani, kalau di ADO library utk pencaraian dilakukan dengan rsNamaRecordSet.Find(field dst) tapi kalau di VBmysqldirect gimana ya. saya tdk menemukan metode Find tapi findfirst dan FindNext. Tolong ya mbak. Terima kasih

rani irsan said...

@IB Wira Negara:
Klo rani biasanya masukin recordset my sql ke ADO recordset
http://rani-irsan.blogspot.com/2011/04/2-menampilkan-data-di-datagrid.html

furau aliance said...

mbak kalo ipnya dinamic itu codingnya gimana ya?

rani irsan said...

@furau aliance: klo ip dynamic yang diakalin bukan code/app client-nya tapi server nya. Pakai DNS, tentang DNS find here.
Tentang gimana settingnya, saya juga kurang ahli dalam hal ini karena biasa nya tinggal pake hehe...
Biasanya pakai DynDNS, dulu masih gratis, sayangnya sekarang jadi berbayar :)

Ulin Nuha said...

mbak rani.. salam kenal...
btw, dll nya support sama win 7 atau 8 mbak...?
itu linknya aku coba kok ga bisa ya.. boleh dong kirim filenya ke email aku mbak,,

rani irsan said...

@ulin nuha: support, rani udah nyoba vbmysqldirect di win7 sama win8. download nya disini aja Download

Unknown said...

Maap kk saya baru bljr vb.saya mau tanya bisa ngk suatu program/vb dijalankan kalai ngk ada database nya

rani irsan said...

@unknown: bisa klo bukan aplikasi database

sarjono sragen said...

mbk rani...tanya dong.
kalau koneksi sqlservernya pakai vbmysqldirect, terus kalau mau buat laporan yg ada logonya bagaimana ya koneksinya?

rani irsan said...

klo SQL Server ga usah pake vbmysqldirect langsung aja pake ADODB bawaan VB nya.
Logo kan dari gambar, tergantung pake software report apa. Biasanya ada control report sendiri buat nampilin gambar.

hijram mahjura said...

formnya pakai standart exe bisa ya bu? soalnya vb saya kok gak ada VB Enterprise Edition Controls

rani irsan said...

boleh, paling ntar nambahin manual control yang diperlukan