Edit text dan formula (operasi bilangan) pada Datagrid

Baca Juga

Sebelum melangkah lebih jauh, terlebih dahulu siapkan sebuah database dengan minimal ada sebuah table yang didalamnya terdapat field- field sebagai berikut : Kode, Nama, Harga, Kuantitas, Total



Atau dapat dibuat sesuai dengan kebutuhan Anda, intinya ada field- field yang akan kita kalikan /jumlahkan /kurangkan dan atau operasi- operasi bilangan lainnya.Kemudian setelah database sudah siap, langkah selanjutnya adalah koneksi database dengan program, agar lebih simple akan kita gunakan ADODC untuk koneksinya, untuk langkah- langkah koneksinya dapat Anda simak pada artikel sebelumnya disini.

Tambahkan sebuah datagrid, kemudian set properti "datasource = Adodc1". Biarkan datagrid sesuai defaultnya, pastikan properti AllowUpdate bernilai True.
Tambahkan 2 buah textbox, 2 buah label dan 1 buah command. Atur properti masing-masing sesuai kebutuhan Anda. Kemudian Tuliskan kode simpan dibawah ini dalam jendela coding Anda :
Private Sub Command1_Click()
    With Adodc1.Recordset
        .AddNew
        .Fields(0) = Text1.Text
        .Fields(1) = Text2.Text
        .Fields(2) = 0
        .Fields(3) = 0
        .Fields(4) = 0
        .Update
    End With
    MsgBox "data telah ditambahkan"
    Adodc1.Refresh
    setdatagrid  
End Sub

Untuk menghidari perubahan nilai dari field-field yang tidak ingin nilainya bisa diubah secara manual maka perlu adanya penguncian pada field-field tersebut. Tambahkan sebuah code berikut ke dalam jendela coding Anda.

Sub setdatagrid()
    With DataGrid1
        .Columns(0).Locked = True
        .Columns(1).Locked = True
        .Columns(4).Locked = True
        .Refresh
    End With

End Sub

Inti dari edit-ing data grid adalah pada code dibawah ini. yaitu pada event afterColEdit


Private Sub DataGrid1_AfterColEdit(ByVal ColIndex As Integer)
DataGrid1.Columns(4).Text = DataGrid1.Columns(2).Text * DataGrid1.Columns(3).Text

Adodc1.Recordset.Update
End Sub


Untuk mengoperasikannya cukup dengan menekan tombol enter setelah melakukan perubahan suatu field dalam sebuah record.

Yang perlu diperhatikan adalah setiap record haruslah ada field bernilai unik atau berbeda dari record yang lain (bisa dengan cara menggunkan primary key). Hal tersebut untuk menghindarkan error karena program tidak dapat melakukan update data lebih dari satu record, biasanya akan diikuti pesan error berikut :








atau pesan "debug" seperti ini :








 dan ini :






Pencegahan error seperti diatas seharusnya dilakukan sejak proses penyimpanan dari awal, yang biasanya disebut dengan validasi. Ganti kode penyimpanan sebelumnya dengan code dibawah ini :


Private Sub Command1_Click()
If Not Text1.Text = "" Or Text2.Text = "" Then
    With Adodc1.Recordset
        .MoveFirst
        .Find "kode='" & Text1.Text & "'", , adSearchForward
        If Not .EOF Then
            MsgBox "Data sudah Ada"
        Else
            .AddNew
            .Fields(0) = Text1.Text
            .Fields(1) = Text2.Text
            .Fields(2) = 0
            .Fields(3) = 0
            .Fields(4) = 0
            .Update
            MsgBox "data telah ditambahkan"
        End If
    End With
  
    Adodc1.Refresh
    setdatagrid
End If
End Sub



Demikian. Selamat mencoba. Semoga bermanfaat.

Untuk Link download yang sudah saya perbaiki dapat dilihat pada halaman DOWNLOAD, walaupun baru sedikit semoga bisa bermanfaat,untuk cara download silakan lihat DI SINI, Terima kasih

7 Tanggapan

salam kenal...mas cara pakek button di datagrid gmna yak!

wah kebetulan saya baru saja posting tentang data edit grid. silakan baca pada link ini :
http://www.vbjadul.com/2009/11/data-edit-grid-versi-1.html
dalam artikel tersebut terdapat code cara penggunaan button dalam datagrid.

lam kenal mas, mau tanya untuk struktur formula bagaimana jika kita sudah terlanjur menginput suatu data dan akan di edit kembali tanpa harus mengedit pada primary key(unik)nya mohon pencerahannya.

makasih mas atas kunjunganny. maaf, saya g paham maksud pertanyaan mas. mgkin sy akan posting yg berkaitan dgn masalah input, update/ edit, dan delete. thanks

@admin
Gua bantu jawab pertanyaan dari
gelzrockman,,,

Klo mau nge edit tanpa mengganti primary key, ckup saat kta menekan tombol edit. Maka textbox dari primarykey enabled nya ckup di setting k false aj, shingga data nya gak bsa dganti,,,
Nih cntoh nya :

private sub cmd_edit_click( )
txt_primarykey.enabled = false
Baru = false
Cmd_edit.enabled = false
Cmd_ok.enabled = true
End sub

private sub cmd_databaru_click( )
txt_primarykey.enabled = true
Baru = true
Cmd_databaru.enabled = false
Cmd_ok.enabled = true
End sub


private sub cmd_ok_click( )
If baru = true then
Adodc.recordset.addnew
Adodc.recordset!primarykey = txt_primarykey
Adodc.update
End if

If baru = false then
Adodc.recordset.edit
Adodc.recordset!primarykey = txt_primarykey
Adodc.update
End if
End sub

ad baik nya jga, klo mke datagrid, properties pada datagrid allow update di buat jdi false, itu spaya datagrid nya cma brguna untuk di liat, bkan utk d update,,,

N klo mke textbox yg dhubung kan ke adodc, ad baik nya textbox nya pd prperties enabled nya d buat false pd form load, krena klo dibiarkan bgtu aj, apabila text nya diisi mka akan ter edit bgtu aj,,,,

Smoga bsa mmbantu,,,

akhi... ana pake coding diatas, tapi jika database belum ada isinya pasti debug
dan yg disorot adalah .movefirst
tapi klu database ada isinya walupun cuma 1.. coding diatas berjalan baik.
gimana solusi codingannya supaya jika database masih kosong ngga debug.

Private Sub Command1_Click()
If Not Text1.Text = "" Or Text2.Text = "" Then
With Adodc1.Recordset
.MoveFirst ------> tersorot warna kuning
.Find "kode='" & Text1.Text & "'", , adSearchForward
If Not .EOF Then
MsgBox "Data sudah Ada"

coba yang ini, tambahkan codeini sebelum yang disorot kuning ,
if .bof then exit sub


Formulir Kontak

Nama

Email *

Pesan *

Pengikut