Sunday, May 13, 2012

Cara Membuat Tombol Cari Data dari Database VB6

Kali ini kita akan membuat tombol Cari Data dari Database dan kemudian ditampilkan ke Textbox, Untuk itu lihat artikel sebelumnya, Cara manpilkan Database ke Textbox VB6. pastikan juga anda telah membuat koneksi database, Cara membuat koneksi Database ke VB6. ini dia design saya sebelumnya :




Buat tombol Cari, dan beri nama cmdCari, ini dia contoh kode :



Private Sub cmdCari_Click()
Dim Mcari As String 'deklarasi Variable u/ tampung Nilai
       
        Mcari = InputBox("Ketik Kode Barang", "Cari")
       
        If StrPtr(Mcari) = 0 Then
            'Kode InputBox Cancel
            'MsgBox "You pressed cancel!"
        ElseIf Len(Mcari) = 0 Then
            'Kode InputBox OK tapi diisi Kosong
            MsgBox "Anda Harus Mengisi Kode Barang.", vbInformation, "Cari"
            cmdCari_Click
        Else
            'cari data ditabel barang
            RsBarang.Find "KodeBrg='" & Mcari & "'", , adSearchForward, 1
            'jika g ada tampilkan textbox
            If RsBarang.EOF Then
                MsgBox "Data tidak ditemukan" & (Chr(10)) & "Silahkan Coba Lagi!!", vbInformation, "Cari"
                RsBarang.Requery 'refresh data
                cmdCari_Click
            End If
            Call tampil
           
        End If

End Sub

Sedikit penjelasan : kode ini ditulis didalam control tombol, Pertama deklarasikan variable untuk manampung nilai dari inputbox, kita menggunakan Inputbox untuk pencarian nilai. kemudian Mcari diisi dengan InputBox. perhatikan fungsi If jangan sampai salah memberi tutup end if, atau meletakan kode didalam if. if pertama StrPtr(Mcari) kode setelah then ditulis jika kita menekan Tombol Cancel pada InputBox, kemudian elseIf Len(Mcari) kode jika kita menekan tombol Ok pada Textbox Tapi nilai atau Inputbox tidak diisi. dan pada else itu kode jika kita ingin menampikan atau menggunakan nilai Inputbox. 

kode Cari data database atau cari data di tabel, tapi pastikan recordset terbuka Pada formload, Recordset ini saya biarkan terbuka selama program berjalan,  RsBarang.Find , digunakan untuk mencari data di tabel recorset, "kodebrg" nama Field yg akan dicari Mcari adalah variable inputbox. selanjutnya terdapat If lagi, Jika Data yang dicari atau Mcari tidak ditemukan pada database, If RsBarang.EOF, Jika tidak ada, maka Tampilkan Pesan Data Tidak Ditemukan, Setelah End If anda bisa memanggil Procedure Tampilkan data ke TextBox, Lihat Cara Menampilkan Database ke TextBox VB6. Selesai
Tutorial Selanjutnya Cara Membuat Tombol Hapus Database VB6.

mohon maaf jika terdapat kesaahan, Semoga Infonya Bermanfaat;
Terima kasih, Telah Berkunjung.!!

24 comments:

  1. mas ko terjadi error pada saat call tampil??

    ReplyDelete
  2. call tampil berarti memanggil Procedure tampil. silahkan buat dulu procedure tampilnya. silahkan coba : Cara Menampilkan Database ke TextBox. Semoga berhasil.

    ReplyDelete
  3. aku tdk mengerti..
    bisa d jelaskan lgi,,

    ReplyDelete
  4. kamu tidak mengertinya dimananya??
    kode ini :

    RsBarang.Find "KodeBrg='" & Mcari & "'", , adSearchForward, 1

    RsBarang adalah nama Recordset, kenapa menggunakan RsBarang.Find? itu digunakan untuk mencari data pada recordset. Recordset RsBarang saya biarkan Tetap terbuka dan sudah diisi dengan data dari database.

    saya isi(buka) RsBarang pada formLoad :

    RsBarang.Open "Select * from Barang", cn, adOpenDynamic, adLockOptimistic

    itu adalah kode untuk mengisi recordset RsBarang dengan Perintah Select all dari tabel Barang..
    Selanjutnya KodeBrg= mcari maksudnya data yang dicari itu yang memiliki kode apa? Mcari adalah data yang kita input pada inputBox.


    untuk lebih jelasnya silah lihat tutorial lainya mulai dari cara membuat koneksi menampilkan Textbox dll. . semoga membantu..

    ReplyDelete
  5. bang achul..kalo misalkan cari data nya pengen berdasarkan data yang kurang atau yang lebih dari nominal tertentu kayak gimana ?

    misal di listview ada data
    1-50

    nah pas kita ketik di textfiled angka 5 maka yang tampil di list view hanya 1-4..

    ReplyDelete
  6. Hi Gery!!

    Kamu ingin Menampilkan data pada listviev jumlahnya berdasarkan kurang dari data yang diketik ditextbox??

    Coba buat Textbox Tcari
    contoh :

    Private Sub TCari_Change()
    Dim Mcari As String

    'validasi Panjang char
    If Len(TCari.Text) > 9 Then
    TCari.Text = ""
    Exit Sub
    End If

    'apabila Textbox Kosong
    If Me.TCari.Text = "" Then
    rs.Open "Select * from contoh Order By Kode", cn
    Call TampilGrd
    Set rs = Nothing
    Exit Sub
    End If

    'Kode Cari
    Mcari = "SELECT * FROM contoh Where Kode < " _
    & CLng(TCari.Text) & ""
    rs.Open Mcari, cn
    Call TampilGrd

    Set rs = Nothing
    End Sub

    call TampilGrd adalah Procedure untuk menampilkan data pada Listview. Dan TextBox Hanya bisa diisi dengan Angka, agar tidak error anda bisa buat kodenya hanya angka di keypress.

    contoh tabel saya diatas :

    kode Nama
    1 A
    2 B
    3 C
    4 D
    5 E
    6 F
    7 G
    8 H
    9 I
    10 J
    11 K
    12 L
    13 M

    apabila di ketik 5 maka yang muncul hanya data dari 1 sampai 4. silahkan coba Download source yg saya buat berdasarkan contoh datas Contoh Source

    Semoga membantu!!

    ReplyDelete
  7. terimakasih mas, tutorial nya berhasil ^_^

    ReplyDelete
  8. cara mengetahui nama recordsetnya itu bagaimana?

    ReplyDelete
  9. tanya donk,, ini pake database apa ya gan?
    saya png tau yg pake database sql..
    makasih... :)

    ReplyDelete
    Replies
    1. maaf bru reply, tutorial disini menggunakan database sql server 2000

      Delete
  10. agan..agan..klw mau menampilkan data yg udh disimpan di datagrid tapi hanya memanggil data tertentu dengan tombol cari gimna ya gan??
    misal nya:
    1.1/a
    1/b
    1/c
    2.2/a
    2/b
    2/c
    trus klw kita clik di tombol command pencarian misal nya "1" maka yang muncul di data grid dari 1/a sampai 1/c ....
    gimana ya gan membuat coding nya ... tetapi dengan 2 data grid dan di form yg berbeda... mohon bantuan nya ya gan ... kirim di arlensiusdenymanalu@gmail.com

    ReplyDelete
    Replies
    1. menurut saya, jika data yang dicari isinya seperti diatas dan ingin mennampilkan data sesuai angkanya saja, tinggal rubah saja query select saat mencari data.

      misalkan saya memiliki filed namanya kode, isinya 1a,1b,1c,2a,2b
      kemudian jika ingin menampilakan yang depannya angka satu saja maka query sqlnya

      SELECT * FROM `tabel` WHERE left(kode,1)=1

      maka yang akan tampil dari demua data dng kode yg depannya 1
      kira2 begitu!!
      maaf saya tidak bisa memberi contoh kode VB nya, karena saat ini saya sedang tidak menggunakan vb

      Delete
  11. Terima Kasih, Sangat Bermanfaat. Bisa Di Aplikasikan Di Berbagai Tipe Database ;)

    ReplyDelete
  12. RsBarang saya rubah dengan nama tabel pada database bisa tidak? dan Mcari saya ganti dengan nama field yang ada di tabel, maaf saya masih awan jadi kurang ngerti dan saya lagi belajar tolong bantuannya ya

    ReplyDelete
  13. gan tadi saya edit dan hasilnya debug disini " ank1.Find "NIM='" & Nama & "'", , adSearchForward, 1 " jadi yang salah apanya ya ?

    ReplyDelete
    Replies
    1. Hi,
      sudah lama saya tidak update, saat ini saya sudah tidak menggunakan vb.

      RsBarang bisa saja dirubah dg nama apa saja, itu hanyalah variable untuk sebuah recordset yang berisi data dari database, begitu juga dengan Mcari, hanyalah variable untuk menampung data yg akan dicari.

      kemungkinan debug pd problem diatas ada pada recordset ank1.
      setiap pembuatan recordset, harus ada deklasrasi variable recordset.
      'ini sample deklarasi variable u/ recordset
      Dim RsBarang As New ADODB.Recordset

      u/ selanjutnya Recordset bisa diisi data dari database
      'ini sample pengisian recodset
      RsBarang.Open "Select * from Barang", cn, adOpenDynamic, adLockOptimistic

      u/ selanjutnya anda bisa mencari data yg ada di recordset

      untuk lebih jelasnya silahkan lihat tutorial yg lainya tentang cara membuat koneksi dan menampilkan data pada database di vb6

      Terima kasih,
      maaf kurang bisa membantu. ^_^)

      Delete
  14. kalo buat untk agar huruf dan angka di input box itu besar(kapita) dan input maxlenghtny 6 penempatannya gimana ya gan?terimakasih

    ReplyDelete
  15. kak mau tanya kalo saya bikin data grid terus dari data grid itu saya mau buat tombol cari dari data grid tadi bisa nggak ya? kalo bisa bisa tolong di kasih scripnya hehehe. mksih

    ReplyDelete
    Replies
    1. Coba lihat saja source code Latihan Inventory dari semua tutorial yg ada disini

      Delete
  16. mas,,, numpang nanya...
    kalo buat filter data,,, seumpama ada data di bulan januari mpe desember,, terus saya mau nampilin data yang februari sampe maret,, gmana ya mas kodingnya,,, mohon bantu pencerahannya,, hehe

    ReplyDelete
    Replies
    1. jika ingin hasil cari dengan range data tinggal rubah ajh

      RsBarang.Find "KodeBrg='" & Mcari & "'", , adSearchForward, 1

      --> "KodeBrg='" & Mcari & "'" <-- dengan kriteria yg diinginkan.

      misal "Bulan>" & range1 " AND " & "Bulan<" & range2.

      ingat rs.find bisa digunakan jika recordset sudah diisi dengan data dari rs.open

      Delete
  17. Makasih mas...sangat membantu & mudah di pahami...

    ReplyDelete
  18. mau tanya masih dijawab kan yaa ...
    di contoh itu kan kita cuma mau cari satu jenis recordset yaitu "kode barang".
    nah kalo kita mau buat di pencarian itu salah satu dari "kode barang atau harga barang" gimana ya sourcenya?

    ReplyDelete
    Replies
    1. initinya ada di query pencarian recordset, rsbarang find, disitu isikan kriterianya sesuai dengan apa yg kita butuhkan,

      berarti where kodebarang or hargabarang sesuai data yg diinginkan

      Delete