16 Desember 2009

Code Simpan, Cari, Edit dan hapus data pada Visual Basic 6.0

Berikut adalah comtoh penulisan code vb6 untuk simpan, cari, ubah dan hapus data dengan menggunakan Data Control, ADODC, dan ADODB. (codenya basic/pemula)

Code-code dibawah ini hanya sebatas code-code dasar untuk simpan, cari, ubah dan hapus, tidak disertakan code-code validasi, penanganan error ataupun code untuk koneksinya.




1. DATA CONTROL

Yang perlu diperhatian adalah bahwa Data Control membutuhkan index untuk pencarian yang selanjutnya untuk melakukan edit dan hapus data


#Simpan Data :

Data1.Recordset.AddNew
Data1.Recordset!namakolom1 = Text1.Text
Data1.Recordset!namakolom2 = Text2.Text
Data1.Recordset.Update
Data1.Refresh


#Pencarian Data :

Data1.Recordset.Index = "KodeIdx"
Data1.Recordset.Seek "=", Textcari.Text
If Not Data1.Recordset.NoMatch Then
     Text1.Text = Data1.Recordset!namakolom1
     Text2.Text = Data1.Recordset!namakolom2
Else
     MsgBox "Maaf, Data Tidak Ditemukan!"
End if


#Edit Data :

Kode ini sebaiknya dijalankan setelah kode pencarian dijalankan terlebih dahulu.
Data1.Recordset.Edit
Data1.Recordset!namakolom1=Text1.Text
Data1.Recordset!namakolom2=Text2.Text
Data1.Recordset.Update
Data1.Refresh


#Hapus Data :

Kode ini sebaiknya dijalankan setelah kode pencarian dijalankan terlebih dahulu.
Data1.Recordset.Delete
Data1.Refresh



2. ADODC



#Simpan Data :
Adodc1.Recordset.AddNew
Adodc1.Recordset!namakolom1 = Text1.Text
Adodc1.Recordset!namakolom2 = Text2.Text
Adodc1.Recordset.Update
Adodc1.Refresh



#Pencarian Data :


Adodc1.Recordset.Find "namakolom1='" + Text1.Text + "'", , adSearchForward, 1
If Not Adodc1.Recordset.EOF Then
     Text1.Text = Adodc1.Recordset!namakolom1
     Text2.Text = Adodc1.Recordset!namakolom2
Else
     MsgBox "Maaf, Data Tidak Ditemukan!"
End if


#Edit Data :

Kode ini sebaiknya dijalankan setelah kode pencarian dijalankan terlebih dahulu.

Adodc1.Recordset!namakolom1=Text1.Text
Adodc1.Recordset!namakolom2=Text2.Text
Adodc1.Recordset.Update
Adodc1.Refresh


#Hapus Data :

Kode ini sebaiknya dijalankan setelah kode pencarian dijalankan terlebih dahulu.
Adodc1.Recordset.Delete
Adodc1.Refresh



3. ADODB
Sebelum melangkah lebih jauh sebaiknya Anda membaca terlebih dahulu bagaimana koneksi database dengan menggunakan ADODB disini


#Simpan Data :
ado.Execute "INSERT INTO [nama tabel] VALUES ('" + Text1.Text + "','" +  Text2.Text + "')"


#Pencarian Data
Set Rs = New Adodb.Recordset
Rs.Open "SELECT * FROM [nama table1] WHERE [nama kolom1]='" + TextCari.Text + "'", ado
If Not rs.EOF Then
     Text1.Text = rs("namakolom1")
     Text2.Text = rs("namakolom2")
Else
     MsgBox "Maaf, Data Tidak Ditemukan!"
End if 


#Edit Data

ado.Execute "UPDATE [nama tabel] Set [namakolom1]='" + Text1.Text + _
                    "',[namakolom2]='" + Text2.Text + _
                    "' WHERE [nama kolom1]='" + TextCari.Text + "'"

Code diatas tidak memerlukan lagi kode pencarian seperti code edit untuk DATA dan Adodc


#Hapus Data
ado.Execute "DELETE * FROM [nama tabel] WHERE [nama kolom1]='" + TextCari.Text + "'"

Code diatas tidak memerlukan lagi kode pencarian seperti code hapus untuk DATA dan Adodc


Demikian, semoga bermanfaat.

Artikel Terkait Lainnya Seputar:



51 komentar:

  1. Bro, numpang naya, gua ad buat project, buat tugas kul nih,,, jdi project gua nih mke database mysql, odbc, n gua mke adodc,,, jdi klo gua compile file gua jdi *.exe, n mau ngejalankan k komp yg laen, gmna caranya spya project gua, bsa ttap trhubung k database nya ?

    BalasHapus
  2. Yang Jelas di komp lain harus ada database (-di local server-) mysqlnya, kemudian harus membuat DSN dengan nama yang sama dengan DSN komp sebelumnya.

    BalasHapus
  3. ralat "Adodc1.Recordset.Refresh" itu bukannya Adodc1.refresh

    BalasHapus
  4. betul betul betul, thanks mas mockie, segera saya ganti codingnya

    BalasHapus
  5. bro kalo semisal dari form 1 ke form 2 (untuk edit database )
    terus adodc refreshnya di form 2: Form1.Adodc1.Refresh
    ketika ada form 3 memanggil form 2 (untuk edit lagi) kan adodc refreshnya diform 2:
    Form1.Adodc1.Refresh
    itu gmn ya cara kodingnya Form1.Adodc1.Refresh dan Form1.Adodc1.Refresh di form2

    makasih bantuannya

    BalasHapus
  6. kenapa ya waktu aq isi SQL ke source code ko g bisa dikenali?????? mohon bantuannya..........

    BalasHapus
  7. mungkin bisa diperinci lagi mas pertanyaannya, mungkin bs dengan contohnya, memang ada kode tertentu yang tidak dikenali database tertentu,, terima kasih

    BalasHapus
  8. Ikutan nimbrung brow...
    nch ane mo nanya,,,apa ch bedanya Data1 dgn Adodc1,trus DBGrid1 dgn DtaGrid1

    BalasHapus
  9. Data dan adodc sama-sama digunakan untuk koneksi ke database, DATA lazim digunakan untuk koneksi dengan db Access berformat 97 kebawah, sedangkan ADODC dapat digunakan untuk yang berformat diatasnya dan banyak lagi pilihan database yang bisa dibuka dengannya.

    DataGrid, untuk menampilkan data yang dikoneksikan dengan ADODC, sedangkan DBGrid untuk menampilkan data dengan koneksi DATAControl. Kalau dicoba dibalik g bisa .. he3

    Terima kasih.

    BalasHapus
  10. mas,,klo source kode simpan untuk combo gmana...
    al'a saya buat pilihan untuk tanggal pke combo...mohon pencerahan'a !

    BalasHapus
  11. sama seperti menyimpan dengan textbox mas. untuk menambahkan data setelah disimpan kedalam combo coba mas baca artikel vbjadul.net tentang mengisi list dan combo : 3 cara mengisi listbox dan combobox

    BalasHapus
  12. Numpang tanya... Kalau mau menghapus data yang ada di datagrid namun yang dihapus tidak semua tapi hanya satu baris bagaimana listingnya ya?

    BalasHapus
  13. sepertinya langsung diklik record pada datagridnya langsung pake code hapus
    Adodc1.Recordset.Delete
    Adodc1.Refresh
    datagrid1.refresh

    atau dicari dulu recordnya yang mana

    Adodc1.Recordset.Find "namakolom1='" + Text1.Text + "'", , adSearchForward, 1
    Adodc1.Recordset.Delete
    Adodc1.Refresh

    semoga dapat membantu..:)

    BalasHapus
  14. gan,, klo untuk menyimpan data ke database dengan nama index yg sama gimana yah,,
    contoh :
    gw punya tabel pembayaran SPP dgn field NIS, Nama, Kelas, bulan_pembayaran.
    yg jd index nya adlah field NIS,,
    nah klo pengen nyimpan data dengan nis yg sama gmna yah???
    apa harus pake array atau gmna??
    mohon pncerahan nya gan,,,
    thanks,,,

    BalasHapus
  15. gan, klo muncul "can't find instalable ISAM" kira2 apanya ya gan??? mohon penerangan gan...

    BalasHapus
  16. gan kalo untuk pencarian dua data dalam satu record bisa ga ???
    contohnya pencarian NIM dan kode matakuliah menggunakan ADODC...

    BalasHapus
  17. coba yang ini mas,,
    Adodc1.Recordset.Find "namakolom1='" + Text1.Text + "' AND namakolom2='" + Text2.Text + "'", , adSearchForward, 1

    BalasHapus
  18. mas listing tambah untuk ADODC gmn ya mas...?

    BalasHapus
  19. cra penulisan "namakolom" contoh nya kayak gimana ya?.....

    kira2 bisa pake spasi ga ya?....
    soalnya terdapat nama kolom yang ada spasi nya.....

    mohon bantuan nya...

    BalasHapus
  20. mas bs mnt tlng g nih, sy lg ad tugas bikin input pasien tp hrs ad pesan klo msh kosong " daata blm ad" sedangkan bila data sudah ada pesan " Data sudah ada ", trs sdh sy bikin kq msh eror ya mas. bs d bantu g mas tlng d cek apanya yg salah.
    ni kodingnya :

    Private Sub CmdInput_Click()
    If Cmdinput.Caption = "&Input" Then
    Cmdinput.Caption = "&Simpan"
    Cmdedit.Enabled = False
    Cmdhapus.Enabled = False
    Cmdtutup.Caption = "&Batal"
    SiapIsi
    KosongkanText
    Text1.SetFocus
    Exit Sub
    Else
    If Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = "" Or DP1 = "" Then
    MsgBox "Data Belum Lengkap...!"
    Text1.SetFocus
    SiapIsi
    'Exit Sub
    Else

    'If Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = "" Then
    MsgBox "Data yang anda masukkan sudah terdapat dalam daftar" + vbLf + _
    " ulangi pemasukkan data", vbExclamation, "Peringatan"
    KosongkanText
    SiapIsi
    Text1.SetFocus
    Exit Sub
    'With RSPasien
    If Not RSPasien.EOF Then
    'Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = ""
    Dim SQLTambah As String
    SQLTambah = "Insert Into Pasien (NomorPsn,NamaPsn,AlamatPsn,Gender,Umur,Tanggal) values ('" & Text1 & "','" & Text2 & "','" & Text3 & "','" & Text4 & "','" & Text5 & "','" & DP1 & "')"
    Conn.Execute SQLTambah
    CmdRefresh_Click
    Else
    MsgBox "Data Sudah disimpan!", vbOKOnly, "Pesan"
    End If
    End If
    End If
    'End If
    'End If
    End Sub

    BalasHapus
  21. gan pas saya mau delete di datagrid1, kok delete nya yang paling atas ya? Gmn cara nya supaya saya mau delete data yang di pilih. misalnya data nya ada di baris 2. Tolong di jawab ya.....

    BalasHapus
  22. Salam Pramuka....

    Wahhh bagus Baget isinya prient
    Lihat balikyah pya aku...
    http://pramukacbitasikmalaya.blogspot.com/

    Terima kasih.

    BalasHapus
  23. MOHON BANTUANNYA KALO PENCARIAN FIELD PADA TABEL YANG TELAH DIBUAT MENGGUNAKAN TEXT_CHANGE DAN TAMPIL PA FLEX GRID BAGAIMANA?
    MISAL DI TEKS DI KETIK ADE, MAKA MUNCUL PADA FLEX GRID

    ADE RAMDANI
    ADE AHMAD
    ADE RINDO
    ADE JONI
    .
    .
    .
    DLL

    MOHON SHARING SCRIPTNYA... via mail ulohmail@yahoo.com

    makasih

    BalasHapus
  24. coba pake syntax sql dengan like.

    contoh : select * from datamahasiswa where nama like 'ADE%'

    BalasHapus
  25. bang gmn klw tmbh combo.
    tu code nya gmn y bang untuk pnambahan nya pada commend simpan data???
    thank sblm nya....

    BalasHapus
  26. Setelah simpan baru diload ke combonnya mas, yang lebih mudah pakai dbcombo atau datacombo saja :

    http://www.vbjadul.net/2010/02/cara-menggunakan-dblist-dan-dbcombo.html

    http://www.vbjadul.net/2010/02/cara-menggunakan-datalist-dan-datacombo.html

    Terima kasih

    BalasHapus
  27. thanks bgt ya ilmunya...
    manfaat bgt buat saya :)

    BalasHapus
  28. Iya sama-sama semoga bermanfaat :)

    BalasHapus
  29. gan mau minta tolong nih, untuk form pencarian, pada command "cari" saya isi coding seperti ini
    Adodc1.RecordSource = " SELECT * FROM student where nama lengkap = '" & Text5 & "'"
    Adodc1.Refresh

    tapi koq gagal? apa yang salah?

    BalasHapus
  30. command edit sy kok ga bisa ya?
    edit kan otomatis muncul tuh di text msg" utk nedit, truss kalo ud d edit lgsg tekan tombol simpan malah data baru hasil editnya yg msuk..bingung...maunya data yg tadi msh sama tp cuma d edit ga di tambah baru -_-

    BalasHapus
  31. gan mw minta tolong donk,, mw nanya gimana cara mencegah data kembar pk adodc, biar saat disimpan keluar pesan data sudah ada gtu. tolong ya gan, baru pertama belajar soalnya, msh ga tw ap2.. makasih n sorry sebelumnya :) #bwt tugas tlg bantu y.. sorry n mksh skli lagi

    BalasHapus
  32. menggunakan code pencarian dulu mbak, bila saat pencarian muncul pesan saat data dengan kondisi/nilai tertentu sudah pernah disimpan dalam database.
    contoh :
    Adodc1.Recordset.Find "namakolom1='" + Text1.Text + "'", , adSearchForward, 1
    If Not Adodc1.Recordset.EOF Then
    MsgBox "Maaf, Nomor sudah pernah digunakan!"
    exit sub
    else
    ' masukkan code simpannya disini
    End if

    BalasHapus
  33. Giyan GinantiiSenin, Maret 31, 2014

    pertanyaan 1 :Kenapa ya kalu aku klik hapus yang ke hapus malah data yang pertama kali saya buat bukan yang kita inginkan.
    pertanyaan 2 : Gimana caranya biar data yang terhapus sesuai dengan data yang kita inginkan!

    BalasHapus
  34. jawaban 1 dan 2
    prinsipnya data yang akan dihapus harus dicari dahulu.
    jadi urutan codenya dimulai dengan code pencarian baru diikuti code hapus record apabila record telah ditemukan.
    contoh dengan adodc
    Adodc1.Recordset.Find "namakolom1='" + Text1.Text + "'", , adSearchForward, 1
    If Not Adodc1.Recordset.EOF Then
    Adodc1.Recordset.delete
    Adodc1.Refresh

    Else
    MsgBox "Pilih data yang akan dihapus"
    End if

    kalau familiar dengan adodb dan syntax sql, penghapusan record lebih mudah, lebih aman dan dapat digunakan untuk menghapus beberapa record yang diinginkan sekaligus.

    contoh :
    ...
    koneksi.execute "delete * from t_jual where no_jual='" & text1.text & ''"

    ...

    BalasHapus
  35. pak mau tanya nich kalau mau update data langsung smua gimana to codingnya? contoh punya tabel nama,nim,tanggal jika wktu simpan nama,nim dikasih data sedangkan tanggal dikosongkan bagaimana jika smua data itu pengen update dengan datapicker tapi tanggalnya sma smua jadi serentak update gt?

    BalasHapus
  36. gak eror,tapi kok masih gak kehapus ya?

    BalasHapus
  37. Itu masukin codenya di option hapus bukan ? soalnya aku masukin kode di option hapus datanya tetap gak kehapus tapi juga gak eror.nah gmn tuh sarannya!!!
    tolong segera di respon.
    thnkz

    BalasHapus
  38. Saya sarankan untuk menggunakan ADODB saja dengan syntax SQL contoh (dengan database ms Access)

    dim con as ADODB.Connection
    set con = New ADODB.connection

    con.Provider = "Microsoft.jet.oledb.4.0"
    con.Open App.Path & "\Data\data.mdb"

    'update semua record
    con.execute "update t_siswa set tanggal=#" + format(DTPicker1.value,"yyyy-MM-dd") + "#"

    'jika yang diupdate hanya record tertentu dengan syarat tertentu
    con.execute "update t_siswa set tanggal=#" + format(DTPicker1.value,"yyyy-MM-dd") + "# WHERE nim='" + text1.text + "'"

    Kalau menggunakan Adodc bisa menggunakan metode looping untuk updatenya.

    BalasHapus
  39. @ Giyan : mungkin masih ada masalah waktu (pada code) pencariannya.

    BalasHapus
  40. mas biar jumlah barang bisa bertambah pas kita tambahin atau berkurang pada saat barang tersebut kita jual itu gimana scriptnya?hhhhe
    respon ya :)

    BalasHapus
  41. Dicari barangnya terus di Update, hehehe..

    BalasHapus
  42. codenya gmn bang,5 hari lgy gw presentasi ni,jadi tolong dong bantunnya hhhe .

    BalasHapus
  43. databasenya pake apa mas? koneksinya pake adodc atau adodb?

    BalasHapus
  44. ADODB mas?
    respon secepatnya ya mas

    BalasHapus
  45. database nya gw bikin pake ms acces,koneksinya pake ADODB,mas.
    tolong respon secepatnya mas

    BalasHapus
  46. code update barang saat menjual :
    koneksi.execute "update t_barang set qty=qty-" & val(text5.text) & " where kodebarang='" & text1.text & "'"

    code update barang saat membeli :
    koneksi.execute "update t_barang set qty=qty+" & val(text5.text) & " where kodebarang='" & text1.text & "'"

    BalasHapus
  47. Terima kasih Gan, akhirnya bisa juga sekrang belajar vb

    BalasHapus