Docstoc

Modul VB Database

Document Sample
Modul VB Database Powered By Docstoc
					Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

DATABASE ACCESS METHOD IN VB6

Programmer VB6 memiliki 3 pilihan metode untuk mengakses database :
    1. DAO (Data Access Object),
    2. RDO (Remote Data Object), dan
    3. ADO (ActiveX Data Object).

DAO
DAO digunakan untuk mengakses data lokal menggunakan Jet Engine. Dilihat dari segi
kecepatan dan kemampuan, DAO masih jauh di bawah RDO dan ADO.

RDO
Digunakan untuk mengakses tipe database relational melalui ODBC. RDO dapat mengakses data
dalam SQL Server dan Oracle.

ADO
ADO, atau ActiveX Data Objects, digunakan untuk mengakses semua tipe database melalui OLE
DB (Object Linking Embeded Database). Bahasa pemrograman lain seperti Java, C++, Delphi,
VB.Net juga bisa menggunakan ADO.

ADO Object Model
ADO memiliki 7 object :

                                             1. Connection : Menghubungkan database dengan
    Connection                                  provider.
                                             2. Command : Mendefinisikan object apa yang
                                                akan diambil dari koneksi database, berupa
              Error
                                                table, view, stored procedure, atau SQL.
                                             3. Recordset : Berisi kumpulan record yang
              Property
                                                dihasilkan dari query. Recordset dapat dibuka
                                                tanpa menggunakan Connection, tetapi akan
     Command                                    membebani server ketika membuka lebih dari
                                                satu recordset.
                                             4. Field : berisi informasi field-field yang ada
              Parameter
                                                dalam recordset.
                                             5. Parameter : Digunakan untuk membuat
              Property                          Parameter (syarat) dalam parameter object.
                                             6. Error : Berisi informasi kesalahan yang
     Recordset                                  dihasilkan provider
                                             7. Property : Berisi karakteristik dari object ADO.
              Field

                      Property

              Property




Data Environment                                                                              1
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

MENGGUNAKAN ADODC COMPONENT DENGAN ODBC

Cara pertama menggunakan ADO adalah menggunakan ADO Data Control. Dalam toolbox
standar VB tidak ditampilkan. Ikuti langkah berikut :
1. Buat atau siapkan database JualBuku dengan MS Access, dengan tabel Buku.
             Field               Data Type                  Width           Status
     KdBuku                 Text                    4                 Primary Key
     Nama                   Text                    20                -
     Harga beli             Number                  Integer           -
     Harga Jual             Number                  Integer           -
     Stok                   Number                  Integer           -

    Isi tabel dengan beberapa record
    Simpan dalam folder JualBuku.

2. Buka VB6 dan buat project baru.
3. Tambahkan ADODC Component dan DataGrid control :




4. Tambahkan ADODC ke atas form.
5. Klik kanan ADODC, pilih ADODC properties.
6. Pilih option “Use ODBC Data Source Name”. Karena kita belum membuat Data source-nya
   maka :
7. Klik New




Data Environment                                                                     2
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!


8. Pilih option berikut :




9. Pilih “Microsoft Access Dirver (*.mdb), klik Next dan Finish




10. Isikan nama Data Source. Misal : Buku pada DATA SOURCE NAME
11. Klik SELECT, cari dan pilih database yang dibuat tadi. Lalu OK




Data Environment                                                                   3
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

13. Pilih nama Data Source yang telah dibuat tadi.




14. Pada tab RecordSource,
    Command Type = 2-adCmdTable (menghubungkan ke tabel)
    Table = Buku (nama dari tabel yang dihubungkan)




15. OK.
16. Buat pada form menurut field yang ada pada tabel Buku
17. Hubungkan setiap field (Textbox) dengan ADODC, caranya:
    a. Pilih sebuah TextBox misal textbox Kd Buku.
    b. Pada jendela Properties : (atur sesuai urutan berikut)
        1. DataSource = ADODC1
        2. DataField = KdBuku
        dst untuk field yang lain.
18. Tampilkan formnya.




Data Environment                                                                   4
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

MEMBUAT TOMBOL NAVIGASI

1.   Buat sebuah CommandButton. Kita akan membuat array dari CommanButton itu.
2.   Copy Commandbutton itu, lalu Paste.
3.   Jawab Yes untuk membuat array. Paste lagi untuk membuat tombol sebanyak 4 buah.
4.   Designnya seperti ini:
                                       5. Setiap tombol akan diberi nama
                                            Command1(0) dst. 0 adalah indexnya.
                                       6. Susunlah tombol itu URUT INDEX-nya.

                                         7.    First : kursor menuju record pertama
                                         8.    Next : kursor maju satu record
                                         9.    Previous : kursor mundur satu record
                                         10.   Last : kursor langsung ke record terakhir.




11. Dobel klik pada tombol, mulai mengisi kode :

Ingat! kata-kata setelah tanda ‘ (aphosthrope) itu berupa komentar/keterangan yang dibuat
penulis program supaya yang membaca list program ini mengerti DAN TIDAK AKAN
DIJALANKAN

‘------------------------------AWAL PROGRAM---------------------------------‘
Private Sub Command1_Click(Index As Integer)
  '(perintah supaya kita tidak menulis ulang Me.Adodc1.Recordset)
       With Me.Adodc1.Recordset
     '(perintah untuk memilih index dari setiap tombol)
             Select Case Index
                  Case 0 '(tombol first)
                        .MoveFirst ' (perintah menuju record pertama)
                        MsgBox "Ini record paling awal.", vbInformation, "Pesan"
                  Case 1 '(tombol Next)
                        .MoveNext ' (perintah maju 1 record)
                              ' jika kursor sudah berada di record terakhir
                              ' maka supaya kursor tidak maju terus &
                              ' tidak terjadi error,
                              ' kursor diletakkan di record terakhir
                        If .EOF Then '(EOF = End of File)
                              .MoveLast
                              MsgBox "Ini record paling akhir.", vbInformation, "Pesan"
                        End If

               Case 2 '(tombol previous)
                   .MovePrevious '(perintah mundur 1 record)
                        ' jika kursor sudah berada di record paling awal
                        ' maka supaya kursor tidak mundur terus &
                        ' tidak terjadi error,
                        ' kursor diletakkan di record paling awal
                   If .BOF Then '(BOF = Begin of File)
                        .MoveFirst
                        MsgBox "Ini record paling awal.", vbInformation, "Pesan"
                   End If

            Case 3 '(tombol last)
                  .MoveLast
                  MsgBox "Ini record paling akhir.", vbInformation, "Pesan"
        End Select '(penutup dari Select Case)
    End With '(penutup dari With..)
End Sub



Data Environment                                                                            5
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

MEMBUAT TOMBOL PENGOLAHAN DATA

1.   Buat sebuah CommandButton. Kita akan membuat array dari CommanButton itu.
2.   Copy Commandbutton itu, lalu Paste.
3.   Jawab Yes untuk membuat array. Paste lagi untuk membuat tombol sebanyak 4 buah.
4.   Designnya seperti ini:

Private Sub Command2_Click(Index As Integer)
    With Me.Adodc1.Recordset
        Select Case Index
            Case 0 '(Tambah baru)
                .AddNew '(perintah menambah record baru, membuat baris baru)
                Me.txtKdBuku.SetFocus

               Case 1 '(Batal)
                    '(menghapus baris untuk data baru yang sudah dibuat)
                   .CancelBatch

               Case 2 '(simpan)
                   .Update '(menyimpan data baru)
                   .MoveFirst

            Case 3 '(Hapus)
                .Delete '(menghapus data yang dipilih)
                .MoveFirst
        End Select
    End With
End Sub

MENAMPILKAN DATA PADA DATAGRID CONTROL
1. Buat DataGrid control pada form.
2. Atur properties DataGrid seperti berikut:
   a. DataSource = Adodc1
3. Buat design seperti ini:




MENAMPILKAN JUMLAH RECORD

-    Buatlah sebuah label, beri Name : lblJml
-    Letakkan lblJml di kanan bawah DataGrid

1. Buat sebuah sub rutin yang bernama TampilJmlRecord
2. Isikan kode dalam sub TampilJmlRecord :
     Sub TampilJmlRecord()
         Me.lblJml.Caption = "Jumlah Record : " & _
         me.Adodc1.Recordset.RecordCount
     End Sub

3. Panggil TampilJmlRecord pada

Data Environment                                                                       6
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

    a. Form_Load()
    b. tombol simpan dan hapus

MENAMPILKAN RECORD YANG KE n

-   Buat label bernama lblRecordKe
-   Letakkan lblRecordKe di kiri bawah DataGrid

1. Buat sub TampilRecordKe
2. Isikan kode :
    Sub TampilRecordKe()
       Me.lblRecordke.Caption = "Record ke : " & Me.Adodc1.Recordset.Bookmark
    End Sub
3. Panggil TampilRecordKe di:
   a. Form_Load()
    b. semua tombol navigasi (First, Next, Previous, Last)
    c. DataGrid pada event KeyUp()

MEMBUAT KENDALI KESALAHAN (ERROR HANDLING) PROGRAM

                                          KASUS I
Jika user tidak sengaja mengklik tombol Simpan, padahal field text box belum diisi lengkap,
maka ekan terjadi ERROR.
Cara mangatasinya :
1. Buat Sub ErrorSimpan
2. ketik Kode berikut :
    ' Cek kesalahan jika text masih belum diisi tapi
    ' user menklik tombol simpan
    Sub ErrorSimpan()
         ‘ Jika panjang teks < 1 atau = kosong maka…
           If Len(Me.txtKdBuku.Text) < 1 Then
                MsgBox "Kd Buku masih kosong."
                Me.txtKdBuku.SetFocus
           ElseIf Len(Me.txtNama.Text) < 1 Then
                MsgBox "Nama buku masih kosong."
                Me.txtNama.SetFocus
           ElseIf Len(Me.txtHB.Text) < 1 Then

             MsgBox "Harga beli belum diisi."
             Me.txtHB.SetFocus
         ElseIf Len(Me.txtHJ.Text) < 1 Then
             MsgBox "Harga jual belum diisi."
         Else
             Me.Adodc1.Recordset.Update
             Me.Adodc1.Recordset.Requery
             MsgBox "Data telah tersimpan.", vbInformation, "Pesan"

            Me.Adodc1.Recordset.MoveFirst
            Terkunci
            TampilJmlRecord
        End If
    End Sub
3. Ganti kode pada tombol simpan dengan memanggil sub ErrorSimpan

                                       KASUS II
Jika user menutup paksa form, padahal masih dalam kondisi akan / sedang mengisi data baru,
maka akan muncul ERROR message.
Cara mengatasinya:
    1. Buka event Form_Unload()
2. Isi Code :
    If Me.Command2(0).Enabled = False Then 'tombol baru dalam kondisi terkunci
        Me.Adodc1.Recordset.CancelBatch '(menghapus baris kosong)
        MsgBox "Data masih belum terisi. Ulangi program.", vbCritical, _
       "Peringatan"
    End If


Data Environment                                                                              7
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

                                          KASUS III
Jika user mengetikkan teks/huruf pada field yang berformat Numerik (txtHarga Beli , Harga Jual,
dan Stok) maka ketika proses penyimpanan akan terjadi ERROR.
Cara mengatasi:
1. Pada txtHarga Beli event KeyUp()
    Private Sub txtHB_KeyUp(KeyCode As Integer, Shift As Integer)
      ' txt Harga beli berformat Numeric maka
      ' Jika user memasukkan teks non numeric maka ERROR
     On Error GoTo A
                  If Val(Me.txtHB.Text) <> Str(Me.txtHB.Text) Then
            ' (tidak melakukan apa-apa, tapi loncat ke baris A
                  End If
                  Exit Sub
    A:
           Me.txtHB.Text = ""
           MsgBox "Data yang dimasukkan harus Numerik.", vbCritical, "Peringatan"
    End Sub
2. Demikian juga untuk Harga jual dan stok.

                                        KASUS IV
Jika user mengklik tombol hapus, sedangkan form dalam kondisi Isi data baru maka akan terjadi
ERROR.
Cara mengatasi:
1. Buat Sub ErrorHapus
2. Isi kodenya :
3.
    Sub ErrorHapus()
      ' tombol baru enabled=false berarti sedang ada dalam
      ' kondisi Isi data baru
          If Me.Command2(0).Enabled = False Then 'tombol baru
                 MsgBox "Anda tidak bisa menghapus data " & vbCrLf & _
                 "dalam mode isi data baru." & vbCrLf & _
                 "Mohon diperhatiin gitu loh!", vbExclamation, "Peringatan"

         Else 'Jika tidak dalam kondisi isi data/edit
            'cek lagi apakah data benar2 mau dihapus, jika jawab Yes maka:
              If MsgBox("Apakah data " & Me.txtNama.Text & " akan dihapus?", _
                    vbQuestion + vbYesNo, "Pesan") = vbYes Then

                   Me.Adodc1.Recordset.Delete
                   Me.Adodc1.Recordset.Requery
                   MsgBox "Data telah terhapus.", vbInformation, "Pesan"

                Me.Adodc1.Recordset.MoveFirst
                TampilJmlRecord
            Else 'jika jawab No maka:
                      MsgBox "Batal menghapus data.", vbInformation, "Pesan"
            End If
        End If
    End Sub
4. Ganti isi kode tombol HAPUS dengan memanggil sub ErrorHapus




Data Environment                                                                             8
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

SOURCE CODE SELENGKAPNYA
Private Sub Command1_Click(Index As Integer)
  '(perintah supaya kita tidak menulis ulang Me.Adodc1.Recordset)
       With Me.Adodc1.Recordset
     '(perintah untuk memilih index dari setiap tombol)
             Select Case Index
                  Case 0 '(tombol first)
                        .MoveFirst ' (perintah menuju record pertama)
                        MsgBox "Ini record paling awal.", vbInformation, "Pesan"
                        TampilRecordKe

               Case 1 '(tombol Next)
                   .MoveNext ' (perintah maju 1 record)
                   If .EOF Then ' (EOF = End of File)
                        .MoveLast
                        MsgBox "Ini record paling akhir.", vbInformation, "Pesan"
                   End If
                   TampilRecordKe

               Case 2 '(tombol previous)
                   .MovePrevious '(perintah mundur 1 record)

                    If .BOF Then '(BOF = Begin of File)
                        .MoveFirst
                        MsgBox "Ini record paling awal.", vbInformation, "Pesan"
                    End If
                    TampilRecordKe

               Case 3 '(tombol last)
                   .MoveLast
                   MsgBox "Ini record paling akhir.", vbInformation, "Pesan"
                   TampilRecordKe

        End Select '(penutup dari Select Case)
    End With '(penutup dari With..)
End Sub

Private Sub Command2_Click(Index As Integer)
    With Me.Adodc1.Recordset
        Select Case Index
            Case 0 '(Tambah baru)
                .AddNew
                Me.txtKdBuku.SetFocus
                Terbuka ‘ memanggil sub terbuka

               Case 1 '(Batal)
                   .CancelBatch
                   .MoveFirst
                   Terkunci

               Case 2 '(simpan)
                   ' memanggil prosedur Simpan
                   ErrorSimpan

            Case 3 '(Hapus)
                 ' memanggil prosedur hapus
                 ErrorHapus
        End Select
    End With
End Sub

Private Sub Command3_Click() ' Tutup Form
    Unload Me
End Sub

'Sub rutin untuk menampilkan jml total record
Sub TampilJmlRecord()
    Me.lblJml.Caption = "Jumlah Record : " & Me.Adodc1.Recordset.RecordCount
End Sub


Data Environment                                                                   9
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!



'Sub rutin untuk menampilkan record yang ke n dari record
' yang sedang disorot / tampil
Sub TampilRecordKe()
    Me.lblRecordke.Caption = "Record ke : " & Me.Adodc1.Recordset.Bookmark
End Sub

Private Sub DataGrid1_KeyUp(KeyCode As Integer, Shift As Integer)
    ' ketika kita menekan tombol panah,
    ' akan menampilkan nomor record dari record yang sedang disorot
    TampilRecordKe
End Sub

Private Sub Form_Load()
  ' menampilkan jumlah record pada awal form dijalankan
     TampilJmlRecord
  ' menampilkan nomor record pada awal form dijalankan
     TampilRecordKe
     Terkunci
End Sub

' sub tampil awal, user tidak bisa mengubah data
Sub Terkunci()
       'mengunci semua field
       Me.txtKdBuku.Locked = True
       Me.txtNama.Locked = True
       Me.txtHB.Locked = True
       Me.txtHJ.Locked = True
       Me.txtStok.Locked = True

     'mengaktifkan tombol baru
     Me.Command2(0).Enabled = True

     'menonktifkan tombol Batal
     Me.Command2(1).Enabled = False

     'menonktifkan tombol Simpan
     Me.Command2(2).Enabled = False

    'mengaktifkan tombol navigasi
    Me.Command1(0).Enabled = True                  'first
    Me.Command1(1).Enabled = True                  'next
    Me.Command1(2).Enabled = True                  'prev
    Me.Command1(3).Enabled = True                  'las
End Sub

' sub untuk kondisi isi data baru
Sub Terbuka()
    'membuka semua field
    Me.txtKdBuku.Locked = False
    Me.txtNama.Locked = False
    Me.txtHB.Locked = False
    Me.txtHJ.Locked = False
    Me.txtStok.Locked = False

     'menonaktifkan tombol baru
     Me.Command2(0).Enabled = False

     'mengaktifkan tombol Batal
     Me.Command2(1).Enabled = True

     'mengaktifkan tombol Simpan
     Me.Command2(2).Enabled = True

    'menonaktifkan tombol navigasi
    Me.Command1(0).Enabled = False                 'first
    Me.Command1(1).Enabled = False                 'next
    Me.Command1(2).Enabled = False                 'prev
    Me.Command1(3).Enabled = False                 'las
End Sub


Data Environment                                                                   10
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!



' Cek kesalahan jika text masih belum diisi tapi
' user menklik tombol simpan
Sub ErrorSimpan()
       If Len(Me.txtKdBuku.Text) < 1 Then
            MsgBox "Kd Buku masih kosong."
            Me.txtKdBuku.SetFocus
       ElseIf Len(Me.txtNama.Text) < 1 Then
            MsgBox "Nama buku masih kosong."
            Me.txtNama.SetFocus
       ElseIf Len(Me.txtHB.Text) < 1 Then

         MsgBox "Harga beli belum diisi."
         Me.txtHB.SetFocus
     ElseIf Len(Me.txtHJ.Text) < 1 Then
         MsgBox "Harga jual belum diisi."
     Else
         Me.Adodc1.Recordset.Update
         Me.Adodc1.Recordset.Requery
         MsgBox "Data telah tersimpan.", vbInformation, "Pesan"

        Me.Adodc1.Recordset.MoveFirst
        Terkunci
        TampilJmlRecord
    End If
End Sub

    Sub ErrorHapus()
      ' tombol baru enabled=false berarti sedang ada dalam
      ' kondisi Isi data baru
          If Me.Command2(0).Enabled = False Then 'tombol baru
                 MsgBox "Anda tidak bisa menghapus data " & vbCrLf & _
                 "dalam mode isi data baru." & vbCrLf & _
                 "Mohon diperhatiin gitu loh!", vbExclamation, "Peringatan"

         Else 'Jika tidak dalam kondisi isi data/edit
             'cek lagi apakah data benar2 mau dihapus, jika jawab Yes maka:
             If MsgBox("Apakah data " & Me.txtNama.Text & " akan dihapus?", _
                   vbQuestion + vbYesNo, "Pesan") = vbYes Then

                   Me.Adodc1.Recordset.Delete
                   Me.Adodc1.Recordset.Requery
                   MsgBox "Data telah terhapus.", vbInformation, "Pesan"

                Me.Adodc1.Recordset.MoveFirst
                TampilJmlRecord
            Else 'jika jawab No maka:
                      MsgBox "Batal menghapus data.", vbInformation, "Pesan"
            End If
        End If
    End Sub

Private Sub Form_Unload(Cancel As Integer)
  ' Jika data belum diisi tapi user memaksa menutup program maka
  ' untuk mengatasi pesan error :
       If Me.Command2(0).Enabled = False Then
          Me.Adodc1.Recordset.CancelBatch '(menghapus baris kosong)
            MsgBox "Data masih belum terisi. Ulangi program.", vbCritical,         _
          "Peringatan"
       End If
End Sub
Private Sub txtHB_KeyUp(KeyCode As Integer, Shift As Integer)
  ' txt Harga beli berformat Numeric maka
  ' Jika user memasukkan teks non numeric maka ERROR
       On Error GoTo A
            If Val(Me.txtHB.Text) <> Str(Me.txtHB.Text) Then
                  '
            End If
            Exit Sub
      A:
         Me.txtHB.Text = ""

Data Environment                                                                       11
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

      MsgBox "Data yang dimasukkan harus Numerik.", vbCritical, "Peringatan"
End Sub

Private Sub txtHJ_KeyUp(KeyCode As Integer, Shift As Integer)
   ' txt Harga Jual berformat Numeric maka
   ' Jika user memasukkan teks non numeric maka ERROR
   On Error GoTo B
          If Val(Me.txtHJ.Text) <> Str(Me.txtHJ.Text) Then
                '
          End If
          Exit Sub
   B:
          Me.txtHB.Text = ""
          MsgBox "Data yang dimasukkan harus Numerik.", vbCritical, "Peringatan"
End Sub

Private Sub txtStok_KeyUp(KeyCode As Integer, Shift As Integer)
   ' txtStok berformat Numeric maka
   ' Jika user memasukkan teks non numeric maka ERROR
   On Error GoTo C
          If Val(Me.txtStok.Text) <> Str(Me.txtStok.Text) Then
                '
          End If
          Exit Sub
   C:
          Me.txtStok.Text = ""
          MsgBox "Data yang dimasukkan harus Numerik.", vbCritical, "Peringatan"
End Sub

‘----------------- Berlanjut ke ADODC dengan ConnectionString --------------‘




Data Environment                                                                   12
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!


MENGGUNAKAN ADODC COMPONENT DENGAN                                                        CONNECTION
STRING SECARA PROGRAMATICAL

1.   Saat ini kita akan menggunakan ADODC dengan Connection String.
2.   Buka Project JualBuku yang telah dibuat, buat form baru : persis seperti form Data Buku.
3.   Cara menghubungkan ke database hampir sama dengan ODBC.
4.   Setelah kita menambahkan ADODC ke atas form, klik kanan ADODC.
5.   Pilih option Use ConnectionString. Klik tombol BUILD
6.   Pilih Microsoft Jet 4.0 OLE DB Provider sebagai
     fasilitas pembuatan koneksi ke database.
7.   Pada tab Connection, cari database yang akan dihubungkan.
8.   Klik Test Connection , jika hubungan ke database berhasil maka muncul pesan.




9. Klik OK, dan klik OK lagi pada form ADODC Properties.
10. It’s time for coding!!! ^_^
11. Ibarat tubuh kita yang memiliki pusat peredaran darah yaitu jantung, dan semua saraf memiliki Connection ke
    jantung, maka peredaran darah ke semua anggota tubuh (mata, dll) dapat berjalan lancar. Jika gak punya
    Connection, aliran darah dari jantung dan sebaliknya nihil, matilah orang itu.
12. Begitu pula dengan pemrograman ini, bisa dianalogikan:
    Form itu = tubuh.
    Jantung = Pusat Connection ke otak (Database).
    Darah = record-record yang terus mengalir, sehingga pengolahan data apapun ke semua anggota tubuh /
    komponen form(DataGrid,dll) dapat lancar. Omong2 nangkep gak sih?

13. Untuk hidup harus lengkap, butuh otak (database), jantung (Connection), dll di atas.
14. Database kita sudah ada (JualBuku). Kita buat Connection secara manual.
    Sub Koneksi()
         With Me.Adodc1
               .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
    Source=E:\Materi Visual Basic 6\JualBuku\JualBuku.mdb;Mode=ReadWrite|Share
    Deny None;Persist Security Info=False"
               .CommandType = adCmdText
               .RecordSource = "SELECT * FROM Buku WHERE KdBuku <>''"
               .Refresh
         End With
         Tampil ‘memanggil sub tampil
    End Sub

     ^_^ untuk mengetikkan isi dari ConnectionString yang
     puanjang, kita dapat mengcopynya pada form ADODC
     Properties .




Data Environment                                                                                             13
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

15. Buatlah sub Tampil untuk menampilkan data pada form
    Sub Tampil()
    ‘menampilkan data ke DataGrid secara manual hoiii
          Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset
             ‘menampilkan record stiap field
               If Me.Adodc1.Recordset.EOF = False Then
                    With Me.Adodc1
                           ‘ingat bahwa penomoran field dimulai dari 0
                           Me.txtKdBuku.Text = .Recordset.Fields(0)
                           Me.txtNama.Text = .Recordset.Fields(1)
                           Me.txtHB.Text = .Recordset.Fields(2)
                           Me.txtHJ.Text = .Recordset.Fields(3)
                           Me.txtStok.Text = .Recordset.Fields(4)
                    End With
               End If
             ‘menampilakan jumlah record
               Me.lblJml.Caption = Me.Adodc1.Recordset.RecordCount
    End Sub

16. It’s time to show up. Masuklah pada event Form_Activate()
    Private Sub Form_Activate()
           Koneksi
                 If Me.Adodc1.Recordset.RecordCount > 1 Then
                      Me.Adodc1.Recordset.MoveFirst
                 End If
    End Sub

17. OK, it’s time to test your Coding!
    -   Isikan code pada tombol navigasi, termasuk menampilkan jumlah record yang ke-n
    -   Isikan code pada tombol pengolahan data.
    -   Tubuh yang sehat berarti nggak sakit-sakitan, alias tidak ERROR.



DATA ENVIRONMENT I

Cara lain dari koneksi ke database dalam VB ialah menggunakan Date Environment. Dibandingkan dengan cara
yang kedua diatas, cara ini jauh lebih mudah karena semua object dapat dilihat dalam Data Environment.

Menambahkan Data Environment ke project.
1. Buka Project Jual Buku yang telah dibuat dulu.
2. Pilih menu Project > Component > pilih tab Designer.
3. Beri tanda cek pada Data Environment. Lalu Close
4. Pilih menu Project > Add Data Environment ( atau klik kanan Project Explorer > Add > Data Environment
Menghubungkan DE dengan DataSource
1. Dobel klik DataEnvironment.
2. Klik kanan object Connection, pilih Properties.




3.   Pilih provider Microsoft Jet 4.0 OLE DB, Next


Data Environment                                                                                           14
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

4.   Pilih database yang akan dipakai. Jangan lupa Test Connection.




5. Pada tab Advanced, aktifkan Share Deny None. Klik OK
Menghubungkan ke database.
1. Klik kanan pada Connection > Add Command.
2. Klik kanan pada Command yang baru dibuat > Properties.
3. Isikan Command Name, Connection, Database Object seperti pada gambar dibawah.




Lock Type :
   Nilai                 Keterangan
   1 – Read Only         Data hanya untuk dibaca
   2 – Pessimistic       Penguncian record dilakukan ketika user menggunakan metode edit
   3 – Optimistic        Penguncian record dilakukan ketika user menggunakan metode Update
                         Record dikunci dengan mode Update Batch, artinya setiap kali user mengedit record,
   4 - Batch Optimistic
                         akan secara otomatis diupdate tanpa menggunakan metode update
4. Kita dapat men-drag command DataBuku ke atas form.




Data Environment                                                                                              15
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

Untuk tombol navigasi :
Private Sub NiceButton1_Click(Index As Integer)
With de1.rsDataBuku
     Select Case Index
          Case 0
                .MoveFirst
                MsgBox "First"
          Case 1
                .MoveNext
                If .EOF Then
                       .MoveLast
                       MsgBox "Last"
                End If
          Case 2
                .MovePrevious
                If .BOF Then
                       .MoveFirst
                       MsgBox "First"
                End If

        Case 3
            .MoveLast
            MsgBox "Last"
    End Select
End With
End Sub

Tombol Pengolahan Data
Private Sub NiceButton2_Click(Index As Integer)
    With de1.rsDataBuku
          Select Case Index
               Case 0 ' baru
                    .AddNew
               Case 1 'Batal
                    .CancelBatch
                    .MoveFirst
               Case 2 'Simpan
                    If MsgBox("Save it?", vbQuestion + vbYesNo) = vbYes Then
                        .Update
                    End If
               Case 3 ' Hapus
                    If MsgBox("Delete it?", vbQuestion + vbYesNo) = vbYes Then
                        .Delete
                        .MovePrevious
                    End If
               Case 4 ' close
                    Unload Me
          End Select
    End With
End Sub



DATA ENVIRONMENT II
Membuat relasi pada Data Environment dengan Child Command.
Latar belakang :
1. Pada suatu saat kita memerlukan informasi siapa Suplier dari buku-buku tersebut. Untuk itu diperlukan suatu
     tampilan informasi yang menampilkan data Suplier dan buku-buku yang disuplainya.
2. Buat tabel Suplier :

     KdSuplier                        Text
     Nama                             Text
     Alamat                           Text

3.   Supaya terdapat hubungan antara Suplier dan Buku, maka :
     a. pada tabel Buku, perlu ditambah field KdSuplier, yang berfungsi sebagai Foreign Key.
         Lihat tampilan relationship pada Access di bawah ini:




Data Environment                                                                                             16
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!




4.   Buka Data Environment, buatlah command baru untuk Suplier (ikuti cara pada materi Data Environent 1)
5.   Klik kanan command Suplier yang selesai dibuat, pilih Add Child Command.




6.   Isikan seperti di atas. Pada Tab Relation, jika Parent Fields dan Child Field sudah sama, klik tombol Add.
7.   Buatlah sebuah form baru.
8.   Drag command Suplier ke atas form




Menghubungkan Data Environment dengan form secara manual
1. Buat form baru dan design seperti form di bawah.




Data Environment                                                                                                  17
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

Private Sub Form_Load()
‘ membuka koneksi
     With de1.rsSuplier
          .Open
          .MoveFirst
     End With
     Tampil
End Sub

Sub Tampil()
     With de1.rsSuplier
          Me.txtKdSuplier.Text = .Fields(0)
          Me.txtNama.Text = .Fields(1)
          Me.txtAlamat.Text = .Fields(2)
     End With
‘ memanggil sub Terkunci untuk mengunci field
     Terkunci
End Sub

‘ menutup koneksi ketika form ditutup
Private Sub Form_Unload(Cancel As Integer)
     de1.rsSuplier.Close
End Sub

‘tombol navigasi
Private Sub NiceButton1_Click(Index As Integer)
With de1.rsSuplier
     Select Case Index
           Case 0
                 .MoveFirst
                 MsgBox "First"
                 Tampil
           Case 1
                 .MoveNext
                 If .EOF Then
                     .MoveLast
                     MsgBox "Last"
                 End If
                 Tampil
           Case 2
                 .MovePrevious
                 If .BOF Then
                     .MoveFirst
                     MsgBox "First"
                 End If
                 Tampil
           Case 3
                 .MoveLast
                 Tampil
                 MsgBox "Last"
     End Select
End With
End Sub

Private Sub NiceButton2_Click(Index As Integer)
    With de1.rsSuplier
        Select Case Index

               Case 0 ' baru
                ‘ memanggil sub Terbuka supaya bisa mengisi teks
                    Terbuka
                ‘ mengosongkan text box dari teks yang ada
                    Me.txtKdSuplier.Text = ""
                    Me.txtKdSuplier.SetFocus
                    Me.txtNama.Text = ""
                    Me.txtAlamat.Text = ""

               Case 1 'Batal
                   .MoveFirst
                   Tampil



Data Environment                                                                   18
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

                  ‘ menyimpan data baru
                 Case 2 'Simpan
                      If MsgBox("Save it?", vbQuestion + vbYesNo) = vbYes Then
                           .AddNew
                                .Fields(0) = Me.txtKdSuplier.Text
                                .Fields(1) = Me.txtNama.Text
                                .Fields(2) = Me.txtAlamat.Text
                           .Update
                           MsgBox "Data is saved"
                           Tampil
                      End If

            Case 3 ' Hapus
                If MsgBox("Delete it?", vbQuestion + vbYesNo) = vbYes Then
                      .Delete
                      .MoveFirst
                      Tampil
                End If
            Case 4 ' close
                Unload Me
            Case 5 'edit
                 ‘ memanggil sub Terbuka supaya bisa edit data
                Terbuka
            Case 6
                 ‘ update / menyimpan data yang telah diubah
                If MsgBox("Update it?", vbQuestion + vbYesNo) = vbYes Then
                             .Fields(0) = Me.txtKdSuplier.Text
                             .Fields(1) = Me.txtNama.Text
                             .Fields(2) = Me.txtAlamat.Text
                      .Update
                      MsgBox "Data is updated"
                      Tampil
                End If
        End Select
    End With
End Sub

Sub Terkunci()
‘ sub untuk mengunci field agar tidak bisa edit
      Me.txtKdSuplier.Locked = True
      Me.txtNama.Locked = True
      Me.txtAlamat.Locked = True
End Sub

Sub Terbuka()
‘ sub untuk mengunci field agar bisa edit atau tambah data baru
      Me.txtKdSuplier.Locked = False
      Me.txtNama.Locked = False
      Me.txtAlamat.Locked = False
End Sub




Data Environment                                                                   19
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!

MEMBUAT RELASI ANTAR TABEL SECARA MANUAL
Bentuk :




1. Tambahkan beberapa komponen ke form Suplier dengan desain di atas
2. Datagrid menampilkan daftar buku yang disuplai tiap suplier yang tampil di sebelah kiri.
3. Cara : menggunakan metode Filter berdasarkan kriteria yang diinginkan misal KdSuplier.
4. Dengan syarat pada tabel yang difilter harus memiliki field dengan tipe data yang sama dari dari tabel
   pemFilter. Misal, tabel Suplier sebagai pemfilter dan tabel DataBuku yang difilter, sama-sama memiliki field
   KdSuplier dengan yang difilter.
5. Lengkapi kode pada sub yang sudah ada ini :
Private Sub Form_Load()
   ‘membuka tabel suplier dari Data environment
    With de1.rsSuplier
          .Open
          .MoveFirst
    End With
   ‘membuka tabel DataBuku dari Data environment
    With de1.rsDataBuku
          .Open
          .MoveFirst
    End With
    Tampil
End Sub

Sub Tampil()
    With de1.rsSuplier
         Me.txtKdSuplier.Text = .Fields(0)
         Me.txtNama.Text = .Fields(1)
         Me.txtAlamat.Text = .Fields(2)
    End With
   ‘ mem-filter atau menyaring data berdasarkan KdSuplier, hasil filter ditampilkan pada datagrid buku (dgBuku)
    With de1.rsDataBuku
         .Filter = "[kdsuplier]='" & Me.txtKdSuplier.Text & "'"
         Set Me.dgBuku.DataSource = de1.rsDataBuku
    End With
    Terkunci
End Sub

MENGAKSES PASSWORD DARI DATABASE DENGAN DATA ENVIRONMENT
1. Buat tabel baru misal bernama tblUser. (fieldnya : nik, nama, pwd)
   Buatlah command User pada Data Environment.
2. Desain berikut :




Dim gagal As Integer

Private Sub Form_Load()
    With de1.rsUser
        .Open
    End With
End Sub




Data Environment                                                                                            20
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!
Private Sub cmdOK_Click()
    With de1.rsUser
    ‘mencari username pada database untuk disesuaikan dengan tekx yang dimasukkan
    ‘menggunakan metode Find
         .Find "[nama]='" & Me.txtUserName.Text & "'", , adSearchForward, 1
    If .EOF = False Then
          If Me.txtUserName.Text = .Fields(1) And Me.txtPassword.Text = .Fields(2) Then
              MsgBox "Win"
          Else
              gagal = gagal + 1
            MsgBox "You have lost " & gagal & "#"
            If gagal = 3 Then
                   MsgBox "You have lost " & gagal & "#" & vbCrLf & _
                 "Please contact your administrator."
            End
           End If
          End If
         Else
         gagal = gagal + 1
            MsgBox "You have lost " & gagal & "#"
            If gagal = 3 Then
                 MsgBox "You have lost " & gagal & "#" & vbCrLf & _
                 "Please contact your administrator."
            End
         End If
        End If
    End With
End Sub

PENCARIAN DATA (SEARCHING)
Menggunakan Input Box

    Input box merupakan fasilitas, dimana kita dapat menggunakannya untuk menambah data, mencari data.
    Tambahkan kode dan komponen berikut pada form Suplier yang telah dibuat:
    -    tombol Cari data




    Dim cari As String
    Private Sub cmdCariData_Click()
    With de1.rsSuplier
        cari = InputBox("Masukkan Kode Suplier :", "Cari data")
        .Find "[kdSuplier]='" & cari & "'"

        If .EOF = False Then
             Tampil
             .Requery
        Else
             MsgBox "Data yang Anda cari tidak ada.", vbInformation
             .Requery
        End If

    End With
    End Sub

    Jika tombol Cari Data diklik :




Data Environment                                                                                         21
Exercise Database Programming – Logos Computer Course – THINK FIRST, CODE LATER!




Data Environment                                                                   22

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:323
posted:7/10/2012
language:Latin
pages:22