Koneksi VB dengan Database

Untuk dapat mengakses suatu database dari visual basic, Anda harus membuat koneksi  ke database tersebut. Visual basic dapat menangani berbagai database, teks bakan worksheet excel. Terdapat beberapa cara yang tersedia untuk itu sesuai dengan database yang digunakan

Cara 1. Menggunakan Object ADO

Anda dapat menggunakan icon Adodc (Microsoft ActiveX Data Objects Data Control) pada toolbox. Jika pada toolbox tidak terdapat icon Adodc, Anda dapat menambahkannya dengan memilih menu Project, Components (Ctrl+T) lalu beri tanda pilih pada Microsoft ADO Data Control (OLEDB) dan klik Apply. Sekarang kita akan mencoba mengaitkan database Ms. Acess yang diberi nama Pembelian.mdb. Untuk itu, lakukan langkah-langkah sebagai berikut:

  1. Pilih menu File lalu New.
  2. Pilih VB Enterprise (Professional) Edition Controls.
  3. Klik OK.
  4. Klik ganda pada folder Forms pada jendela proyek lalu klik ganda pada Form 1 sampai muncul tampilan form.
  5. Klik icon Adodc pada toolbox.
  6. Klik dan seret pada jendela form, sehingga muncul tampilan seperti Gb. Objek yang tergambar dalam form disebut objek data.
  7. Tentukan properti data sebagai berikut:
    1. Name db         Pembelian
    2. Caption           Data Barang
    3. EOFAcction    2
  8. Tentukan properti ConnectionString dengan cara mengklik tombol … pada kolom ConnectionString sehingga muncul tam pilan seperti pada Gb
  9. Pilih OptionButton pada Use Connection String lalu klik Build sehingga muncul tampilan seperti pada Gb
  10. Pilih Microsoft Jet 4.0 OLEDB Provider lalu klik Next.
  11. Pilih (dengan mengklik tombol …) atau ketik nama database yang dipakai pada kolom Select or enter a database name.
  12. Klik Test Connection jika perlu, lalu kllk OK dua kali sampai tampilan kembali ke jendela Form.
  13. Tentukan properti RecordSource dengan cara mengklik tombol pada kolom RecordSource sehingga muncul tampilan seperti pada Gb
  14. Pada kolom Command Type pilih 2-adCmdTable. Setelah kolom ini diisi, maka Anda akan dapat mengisi kolom Table or Stored Procedure Name. lsilah dengan memilib tabel Barang seperti pada Gb
  15. Klik OK.
  16. Simpan form dan proyek dengan nama VB-Lat-01

Cara 2: Mendeklarasikan Objek Ado

Object ado dapat dideklarasi melalui coding. Tiga object bawaan ADO dalam pengembangan aplikasi adalah :

1. Obcet Connection

untuk menangani koneksi antara program dengan sumber data atau server. Deklarasi dapat bersifat lokal maupun global serta dapat diletakan pada level form, modul atau class modul. ADO paling umum membuka suatu koneksi dengan menggunakan obyek Connection Open metoda. Sintaks untuk Metoda Open ditunjukkan sbb:  

Dim connection as New ADODB.Connection

connection.Open ConnectionString, UserID, Password, OpenOptions

Sebagai alternatif, anda dapat menggunakan teknik pintas, recordset.Open, untuk membuka koneksi yang tersembunyi dan mengeluarkan suatu perintah atas koneksi dalam satu operasi. Lakukan hal ini dengan mengaktivkan suatu koneksi yang valid seperti argumentasi ActiveConnection ke Metoda Open. Ini adalah sintaksis untuk masing-masing metoda di Visual Basic: 

Dim recordset as ADODB.Recordset Set

recordset = New ADODB.Recordset

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

Contoh :

Deklarasi object Connection:

     Dim cn As New ADODB.Connection

atau

     Public cn As New ADODB.connection

Selanjutnya mengalokasikan memori untuk onject connection sbb:

     Set cn = New ADODB.Connection

Kemudian isi property object connoction tersebut sbb:

Contoh berikut adalah property untuk MSSQL Server

     cn.connectionString = “Perovider=SQLOLEDB;” & _

                                                 ”Server=NamaServer; ” & _

                                                “Initial catalog= inventory” & _

                                               “user Id = zulidamel” _

                                              “Password=terserah”

     cn.Open

atau

    koneksi =  “Perovider=SQLOLEDB;” & _

                       ”Server=NamaServer; ” & _ 

                       “Initial catalog= inventory” & _

                       “user Id = zulidamel” _

                       “Password=terserah”

cn.Open koneksi

Jika tidak ingin menggunak authentik pada proses koneksi gunakan cara berikut:     

koneksi = “Provider=SQLOLEDB.1;” & _

                  “Integrated Security Info=False;” & _

                 “Data Source = NamaServer” cn.Open koneksiBila koneksi sudah tidak diperlukan tutuplah koneksi dengan perintah

 ”Set cn = Nothing”

2. Object Command

Digunakan untuk perintah SQL ke sumber data atau server. Deklarasi object command sbb:

      Dim CmdBarang As New ADODB.Command

atau

     Public Cmd as New ADODB.Command

selanjutnya alokasikan memori untuk object Command sbb:

     Set CmdBarang = New ADODB.Command

 Kemudian Isi property object command

      CmdBarang.ActiveConection = cn

     CmdBarang.CommandText = “select * from barang”

      CmdBarang.CommandType = adCmdText

3. Object Recordset

Digunakan sebagao penampung hasil eksekusi dalam bentuk tabel. Deklarasi object record sbb:

      Dim rsBarang As New ADODB.Recordset

atau

      Public rsBarang As New ADODB.Recordset

selanjutnya alokasikan memori ynryk object recordset sbb:

      Set rsBarang = New ADODB.recordset

lalu isikan property object record set

      rsBarang.CusrsorTYpe = adOpenDynamic

     rsBarang.LockType = adLockOptimistic

     rsbarang.Open cmdBarang

atau

   rsbarang,open CmdBarang,, adOpenDynamic, adlockOptimistic,  adCmdtext

Data Control

Visual Basic terus berkembang dalam pengembangan general purpose Windows, tetapi kemampuan database tidaklah bagian murni dari desainnya. Data Control,  Visual Basic menambahkan, membuat Visual Basic suatu alat yang jauh lebih tangguh untuk pembuatan pemrograman database.

data-control.jpgData Control memberikan kemudahkan untuk mendapat data ke dalam program anda. Anda dapat dengan mudah mengaitkan  suatu file database, lalu mengaitkan  data lainnya  untuk memindahkan data dari database ke aplikasi anda dan sebaliknya. Data Control pada suatu database dan menetapkan tabel mana yang akan diambil, lalu mengaitkan  ke pengendali Data Control, menetapkan  field yang akan ditampilkan. Pada waktu itu aplikasi anda dapat mengambil, menampilkan, memperbaharui dan membuat database merekam. Alir data di dalam skenario ini ditandai pada gambar.

16 Tanggapan

  1. Salam kenal…..

  2. Aku anak baru yang terjun di dunia Informatika khususnya di vb.Aku Mau nanya gimana sih caranya membuat recordset pada visual basic dan sebenarnya Dim pada VB itu fungsinya apa?
    Tolong dong bantuannya
    terimakasih

    Zb:
    Dalam pemrograman digunakan variable untuk menampung sesuatu. Contoh sederhana nama kamu saja “Yasmin”. Nama itu diletakan di variable nama. Untuk itu, pada VB variable itu harus dideklarasi terlebih dahulu. Bisa ditingkat Form atau iven prosedure atau ditingkat global. Untuk mendeklarasikan variable itu ada 2 word yaitu Dim dan Public. Dim ditempat di awal form atau di awal iven procedure. sekarang untuk mendeklarasikan variable nama kita gunakan dim dimana variable itu hanya berlaku untuk form maka kita tempatkan di awal form maka :

    Dim nama as type-data yang akan ditempatkan dalam variable nama. misal String jadi ditulis

    Dim Nama As String

    selanjutnya dalam program varibale nama itu diisi dengan nama kamu

    Nama = “Yasmin”

    Dalam hal recordset adalah type data object yang disediakan dalam object ado.

    Dim Barang as recordset. Supaya dalam program, mudah dipahami type variable maka penulisan variable diberikan tambahan misalnya variable Barang ditulis dengan rsBarang sehingga dapat dikenali bahwa variable rsBarang adalah type recordset.

    Cara yang sama bisa juga kita lakukan pada variable nama menjadi strNama sehingga kita kenali bahwa Variable strNama adalah tupe String namun karena kita sudah tahu pasti Nama sudah jelas string maka penambahan str di depan variable string tidak perlu. Ok.

  3. thanks

  4. Hii. teman-teman!
    SALAM KENAL.
    saya baru iseng-iseng coba bermain di visual basic dan ternyata menyenangkan juga! sedikit demi sedikit saya pelajari dan baru sedikit juga yang saya bisa, hee……. he…….. !
    baru-baru ini saya pelajari mengenai koneksi database (ADODC) dengan MSHFlexgrid! Cuma saya ketemu masalah :
    KENAPA HASIL INSTALLAN PROGRAM SEDERHANA SAYA , BEGITU DIJALANKAN SUDAH DALAM BENTUK FILE EXE(Sudah di compile+package), SISTEM DATABASENYA TIDAK MAU TERKONEKSI YAA???
    Bagi teman-teman yang punya solusinya mungkin boleh dong saya minta gimana caranya agar masalahnya bisa diselesaikan!
    thank’s sebelumnya.

  5. mas, gmn cara mengkoneksikan DB pada VB6 jika menggunakan 2 komputer yg berbeda spy ketika komputer yang satu memerlukan DB dr lainnya dpt lgsg diakses begtu jg sebaliknya. Bisa g mas??
    Thx y

  6. tolong kirimin aq contoh surat jalan database di Access n Desain Di VB Report di Cristal Report,,tlongin dunk yang menjadi masalah aq “aq mw print SURAT JALAN tersebut menggunakan continuous form tp gx sesuai dengan yang diinginkan???gmn dunk tlong kirim ke emailku ya secepatnya??????pleez..trimz ngetz yup

  7. salam kenal
    sya membuat program sistem informasi akuntansi penerimaan kas dg vb 6.0, tapi access sbg dbasenya sulit untuk dihubungkan kenapa ya??

  8. Saya sekarang membuat program sisfo pencarian judul dng menggunakan vb 6.0, tp sy menemukan kendala dimana saya masih bingung untuk pembacaan karekter kode contoh stambuk 05.202.010 dimana 05 merupakan tahun masuk, 202 kode jurusan, 010 no urut pada masuk, untuk menampilkan stiap karakter kode stambuk sy masih tidak tahu..!!! t

    ZB:
    Gunakan fungsi Left, Mid, dan Right untuk mengambil bagian tertentu dari string.

  9. Salam kenal….

    Saya udah bikin beberapa program dengan vb 6, dan yang saat ini saya sedang merampungkan program billing warnet dengan vb 6, saya menggunakan database MS Access, namun al hasil dari versi yang pertama saya rilis sampai dengan yang sekarang ini selalu ada kendala… diantaranya koneksi dari client tidak selalu normal….
    Intinya apakah database dengan MS Access ini ada keterbatasan atau kelemahan dibandingkan dengan mssql atau yang lainnya…

    ZB:
    Kalau keterbatasan dibanding MSSQL itu jelas, karena MSSQL dirancang untuk Database yang berorientasi skala besar sedangkam MS Access adalah Simple Database untuk skala kecil dan menengah serta bukan termasuk database server. Namun permasalahan anda bukan pada masalah keterbatasan database tersebut karena sampai saat ini saya masih dapat menggunakan MSAccses untuk perusahaan besar yang menampung data dari tahun 2005 masih aktif.
    Saya pikir masalah anda terletak pada masalah jaringan dan bisa juga metodologi pemrograman yang anda gunakan belum maksimal. Dari pengalaman saya, sering ditemukan kegagalan dalam pemrograman dengan ADO sehingga dalam pemrograman saya harus kombinasikan dengan DAO.

  10. aku sedang membuat klien server menggunakan ms sql server, 2000 tetapi gagal saat memilih komputer servernya. bagaimana sebenarnya cara instalasi dan settingnya? please help me …

    ZB:
    Mungkin kamu salah pengetikan aja kali, nama server atau identifikasi user

  11. bagaimana cara mendownload aplikasi akuntansi biar bisa bejar,,,,? terimakasih

  12. Saya mau membuat database dengan visual basic, tapi database/program tersebut dapat di askses juga lewat komputer lain melalui jaringan (LAN).
    Mohon bantuannya. Terima kasih.

    ZB:
    Kamu lihat masalah instalasi jaringan.

  13. salam kenal, mas saya hendak membuat program database dengan VB.di sini saya punya data rekening dalam format excel,dan saya ingin meng up load kan data tersebut dalam program database VB untuk membuat report, jadi saya tidak perlu mengentry datanya satu per satu.yang ingin saya tanyakan apakah hal itu memungkinkan ? dan bagaimana caranya ?? terima kasih

    ZB:
    Sebelumnya perlu diketahui bahwa VB adalah bahasa program yang salah satunya untuk pengolahan database. Database apa yang anda gunakan menyediakan perangkat koneksi untuk VB agar bisa terhubung ke database. Anda dapat membuat aplikasi dengan VB untuk maksud anda tersebut namun system database juga punya fasilitas untuk mengkonversi data dari database lain atau spredsehhet seperti excel. Permasahannya database apa yang anda gunakan….

  14. Mas, tolongin mu bikin TA..
    ada panduan buat billing warnet lengkap pake VB (pokonya dr a – z). Makasih.

    ZB:
    Mohon ma’af! saya ngak punya panduan yang kamu minta.

  15. hai teman-teman salam kenal,
    aku mau nanya, VB selain untuk membuat program penjualan bisa ga sih lebih dari itu misalnya membuat program animasi, anti virus atau program lain yang bisa dibuat di VB
    mengenai listing VB apakah benar jika penggunaan IF yang terlalu banyak akan membuat program jadi lemot.
    thanks

    ZB:
    1. Ya! VB bisa, namun saya tidak punya keahlian dibidang pemrograman animasi atau virologi (antivirus)
    2. Benar, banyak programmer mempertimbangkan penggunaan pernyataan IF namun jangan pula dikatakan dilarang.

  16. tolong bantu dong…
    saya seorang yang baru belajar untuk pemrograman dengan vb 6.0 khususnya, sehubungan dengan itu ada beberapa pertanyaan yang ingin saya tanyakan :
    1.pada saat di run program saya kok error, pesan yang muncul”this action was cancelled by an association object” maksudnya apa ya…
    Data basenya :inventory
    tabelnya :
    -tbBenang dan field2nya : IDBenang(primary key),Nomor,Lot,JmlPersediaan
    -tbTerimaDBG dan fiel2nya :IDTerimDGB(primary key),IDBenang,Tanggal,JmlTerima,NRP

    untuk codingnya sendiri sbb:

    Private Function BlankForm()
    txtTgl = “”
    txtIDTerimaDGB = “”
    txtIDBenang = “”
    txtNomor = “”
    txtLot = “”
    txtJmlPersediaan = “”
    txtJmlTerima = “”
    txtNRP = “”
    End Function
    Private Function TidakSiapIsi()
    ‘menonaktifkan fungsi dari text isian
    txtTgl.Enabled = False
    txtIDTerimaDGB.Enabled = False
    txtIDBenang.Enabled = False
    txtNomor.Enabled = False
    txtLot.Enabled = False
    txtJmlPersediaan.Enabled = False
    txtJmlTerima.Enabled = False
    txtNRP.Enabled = False
    ‘mengubah warna text menjadi hitam
    txtTgl.BackColor = &H8000000F
    txtIDTerimaDGB.BackColor = &H8000000F
    txtIDBenang.BackColor = &H8000000F
    txtNomor.BackColor = &H8000000F
    txtLot.BackColor = &H8000000F
    txtJmlPersediaan.BackColor = &H8000000F
    txtJmlTerima.BackColor = &H8000000F
    txtNRP.BackColor = &H8000000F

    cmdSimpan.Enabled = False
    End Function

    Private Function SiapIsi()
    ‘mengaktifkan text agar bisa diisi
    txtTgl.Enabled = True
    txtIDTerimaDGB.Enabled = True
    txtIDBenang.Enabled = True
    txtNomor.Enabled = True
    txtLot.Enabled = True
    txtJmlPersediaan.Enabled = True
    txtJmlTerima.Enabled = True
    txtNRP.Enabled = True
    ‘mengubah warna teks menjadi aktif
    txtTgl.BackColor = &HFFFFFF
    txtIDTerimaDGB.BackColor = &HFFFFFF
    txtIDBenang.BackColor = &HFFFFFF
    txtNomor.BackColor = &HFFFFFF
    txtLot.BackColor = &HFFFFFF
    txtJmlPersediaan.BackColor = &HFFFFFF
    txtJmlTerima.BackColor = &HFFFFFF
    txtNRP.BackColor = &HFFFFFF

    cmdSimpan.Enabled = True
    End Function

    Private Sub cmdBatal_Click()
    TidakSiapIsi
    End Sub

    Private Sub cmdSimpan_Click()
    dtBenang.Recordset.Index = “IDB”
    dtBenang.Recordset.Seek “=”, txtIDBenang.Text
    If dtBenang.Recordset.NoMatch Then
    dtBenang.Recordset.AddNew
    dtBenang.Recordset!IDBenang = txtIDBenang.Text
    dtBenang.Recordset!Nomor = txtNomor.Text
    dtBenang.Recordset!Lot = txtLot.Text
    dtBenang.Recordset!JmlPersediaaan = Val(txtJmlTerima.Text) + Val(txtJmlPersediaan.Text)
    dtBenang.Recordset.Update
    Else
    dtBenang.Recordset.Edit
    dtBenang.Recordset!JmlPersediaan = Val(txtJmlTerima.Text) + Val(txtJmlPersediaan.Text)
    dtBenang.Recordset.Update
    End If

    dtTerimaDGB.Recordset.AddNew
    dtTerimaDGB.Recordset!IDTerimaDGB = txtIDTerimaDGB.Text
    dtTerimaDGB.Recordset!Tanggal = txtTgl.Text
    dtTerimaDGB.Recordset!NRP = txtNRP.Text
    dtTerimaDGB.Recordset.Update
    TidakSiapIsi
    End Sub

    Private Sub cmdTambah_Click()
    dtBenang.Recordset.AddNew
    ‘dtTerimaDGB.Recordset.AddNew
    BlankForm
    SiapIsi
    txtIDTerimaDGB.SetFocus
    cmdSimpan.Enabled = True
    cmdBatal.Enabled = True
    End Sub

    Private Sub cmdSelesai_Click()
    frmMenu.Show
    Unload Me
    End Sub

    Private Sub Form_Activate()
    Timer1.Interval = 1000
    End Sub

    Private Sub Timer1_Timer()
    txtTgl.Text = Format(Now, “dd/mm/yyyy”)
    End Sub

    Private Sub txtIDBenang_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    dtBenang.Recordset.Index = “IDB”
    dtBenang.Recordset.Seek “=”, txtIDBenang.Text
    If dtBenang.Recordset.NoMatch Then
    MsgBox “Data belum ada, silakan untuk mengisi!”, vbOKOnly + vbExclamation, “Peringatan”
    txtJmlPersediaan.Text = 0
    txtNomor.SetFocus
    Else
    MsgBox “Data telah Ada!”, vbOKOnly + vbExclamation, “Kesalahan”
    txtJmlTerima.SetFocus
    End If
    End If
    End Sub

    Private Sub txtIDTerimaDGB_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
    dtTerimaDGB.Recordset.Index = “IDTDGB”
    dtTerimaDGB.Recordset.Seek “=”, txtIDTerimaDGB.Text
    If dtTerimaDGB.Recordset.NoMatch Then
    MsgBox “Data belum ada, silakan untuk mengisi!”, vbOKOnly + vbExclamation, “Peringatan”
    txtIDTerimaDGB.SetFocus
    Else
    MsgBox “Data Telah Ada!”, vbOKOnly + vbExclamation, “Kesalahan”
    txtIDBenang.SetFocus
    End If
    End If
    End Sub

    2. pada vb saya pada saat control active x saya buka, didalamnya koq ga ada fasilitas cristal report.
    lalu bagaimana untuk memunculkanya…

    demikian pertanyaan saya, tolong balas ke email saya ya pleaseeeee..
    Thanks

    ZB:
    1. Error yang anda temukan berhubungan dengan project reference yang anda gunakan.
    2. Cristalt report adalah aplikasi add-in pihak external yang mendukung VB. Automatics terdeteksi oleh VB bila telah diinstalasi dengan benar

Tinggalkan Balasan