Diberdayakan oleh Blogger.

Rabu, 13 Juli 2011

Belajar Visual Basic 27. Kode program untuk Entri Barang: Menghapus data dalam tabel


Kita sudah membahas tentang cara penyimpanan record baik yang baru maupun yang mengedit record yang sudah ada. 

Untuk menghapus record kita harus terlebih dahulu menemukan record yang akan dihapus, baru kemudian menghapus data yang terkait dengan record tersebut. 

Jika kita misalkan dengan proses yang ada pada Visdata, pertama-tama buka database inventori.mdb, buka tabel rbbarang, gunakan scroll record untuk mencari record yang akan dihapus, ketika ditemukan klik tombol delete. 

Jika kita ingin menyajikannya dalam bentuk source code aplikasi, tentu saja ada beberapa langkah yang harus kita perbaiki.


Begini, program kita sediakan sebuah tombol delete, yang berfungsi untuk menghapus ”record yang ditemukan”. 

Jadi proses tidak diawali dengan pencarian record, tapi terlebih dahulu menghapus data, ketika tombol delete di click. Maka akan dilakukan pencarian record, jika ditemukan, dilakukan penghapusan record. Jika record yang dicari tidak ditemukan, maka ditampilkan pesan bahwa data tersebut tidak ditemukan.

Langkah yang harus dilakukan adalah:

  • Double click pada cmdHapus
Gunakan langkah ini untuk memanggil prosedur default dari cmdHapus, yakni cmdHapus_click

  • Diantara kalang pada prosedur cmdHapus_click Tambahkan teks berikut:
           
Dim dbBarang As Database
    Dim rsBarang As Recordset
    Set dbBarang = OpenDatabase(App.Path & "\inventori.mdb")
    Set rsBarang = dbBarang.OpenRecordset("tbbarang")
    rsBarang.Index = "idxkode"
    rsBarang.Seek "=", txtKode.Text
    If rsBarang.NoMatch Then
          MsgBox "data barang tersebut tidak ditemukan!", vbCritical, "Kesalahan!"
     Else
          rsBarang.Delete
          txtkode.text=""
    End If

  • Penjelasan:
Langkah-langkah yang akan dilakukan kurang lebih sama dengan apa yang dilakukan sebelumnya dalam prosedur penyimpanan record

Seperti telah dibahas sebelumnya, langkah pertama adalah memasukkan database kedalam variabel dbBarang, kemudian memasukkan tabel kedalam variabel rsBarang. Langkah selanjutnya adalah mengaktifkan index idxkode.

Agar bisa melakukan pencarian dengan menggunakan txtkode melalui perintah seek,  hasil dari perintah seek adalah ditemukan atau tidak ditemukannya data yang sesuai dengan index. Jika ditemukan, maka data akan dihapus dari tabel tbbarang, diikuti dengan pengosongan form (txtkode.text=”” akan memicu event txtkode_change, karena isi dari txtkode kosong, maka akan dipanggil event cmdbersih_click). Sedangkan jika data tidak ditemukan (nomatch=true) maka akan ditampilkan pesan dengan msgbox bahwa data tersebut tidak ditemukan.

Minggu, 10 Juli 2011

Belajar Visual Basic 26. Kode program untuk Entri Barang: Pencarian dengan txtkode


frmBarang
Sebelum pengguna melakukan simpan tentunya terlebih dahulu melakukan input data. Setiap data yang diinputkan, sebagaimana telah dijelaskan sebelumnya bisa diwakili oleh sebuah field saja. Yakni field kode, jika kode yang diinputkan seharusnya si pengguna sudah diberitahu bahwa kode itu telah pernah diinputkan atau belum. Kita dapat menambahkan beberapa perintah pada event txtkode_change.

Event change pada txtkode adalah saat si pengguna mengubah isi txtkode di form. Mengubah berarti menambahkan huruf atau bisa juga menghilangkan huruf. Setiap terjadi perubahan huruf maka event ini akan terjadi. Jadi bisa kita asumsikan begini, setiap si pengguna mengetikkan huruf, kita periksa isi txtkode yang ada sekarang, apakah kode tersebut sudah ada dalam tabel tbbarang?, jika belum maka field-field yang lain harus kita kosongkan.

Untuk menandakan bahwa belum ada field yang sesuai dengan kode tersebut. Jika ternyata kode tersebut sudah ada dalam tbbarang. Maka field lain yang berhubungan dengan tabel tersebut harus kita munculkan. Agar si pengguna menyadari bahwa dia sekarang bukan sedang mengentrikan data yang baru lagi. Prosedur ini sangat berguna bagi si pengguna yang ingin mengedit sebuah record tertentu.

  • Double click pada txtkode
Langkah ini dilakukan untuk mengaktifkan event default pada textbox yakni event change.

  • Pada event txtkode_change, tambahkan teks sebagai berikut:
            Dim dbBarang As Database
    Dim rsBarang As Recordset
     Set dbBarang = OpenDatabase(App.Path & "\inventori.mdb")
    Set rsBarang = dbBarang.OpenRecordset("tbbarang")
     If txtKode.Text = "" Then
          cmdBersih_Click
Exit sub
     End If
    rsBarang.Index = "idxkode"
    rsBarang.Seek "=", txtKode.Text
    If Not rsBarang.NoMatch Then
          txtNama.Text = rsBarang!nama
          cboSatuan.Text = rsBarang!satuan
          txtHarga.Text = rsBarang!harga
          txtStok.Text = rsBarang!stok
        Else
              cmdBersih_Click
    End If
 Penjelasan:
If txtKode.Text = "" Then
     cmdBersih_Click
       Exit sub
  End If
 Pertama-tama kita harus memeriksa apakah txtkode sudah diisi oleh sipengguna atau belum. Jika ternyata belum diisi, kita harus mengosongkan form dengan memanggil event cmdBersih_click. Dan kemudian keluar dari event ini. Jika ternyata txtkode sudah terisi, kita lanjutkan ke perintah berikut:
If Not rsBarang.NoMatch Then
          txtNama.Text = rsBarang!nama
          cboSatuan.Text = rsBarang!satuan
          txtHarga.Text = rsBarang!harga
          txtStok.Text = rsBarang!stok
        Else
              cmdBersih_Click
    End If
Baris pertama akan memeriksa apakah isi dari txtkode sudah ada dalam database atau belum. Jika ternyata not rsBarang.Nomatch (nomatch=tidak ketemu, not nomatch berarti ketemu), maka tampilkan isi dari rsBarang ke dalam form.

Perintah berikut txtNama.text=rsBarang!nama, artinya mengisi txtnama dengan isian field nama dari tabel tbarang. Begitu seterusnya dengan cbosatuan, txtharga, dan txtstok.

Jika ternyata txtkode yang dicari tidak ada dalam tbbarang, maka jalankan perintah untuk membersihkan formnya. Jadi prinsip utama, jika kode sudah ada: tampilkan, jika kode belum ada? Kosongkan form!