Mas Eko, ada bbrp hal ttg database yang harus kamu perhatikan, misalnya: 1. field (column) yang digunakan sebagai primary key itu tidak boleh diEDIT. 2. Untuk update, delete dan query cukup menggunakan primary key sebagai key pencarian. contoh sqlstm update kamu: cnado.execute "update `tbbeli` set 'NoBeli` = '" & tdbgrid.columns (0) & "',`barang`='" & tdbgrid.columns(1) & "',`Qty`='" & tdbgrid.columns(2) where `NoBeli`='" cb.(0).text & "' and `barang`='" & rsbeli!barang & "' and `Qty`='" & rsbeli!Qty & "'"
Perintah Update ini jelas akan menggunakan nilai-nilai baru yang sudah diedit. Jelas ini sudah tidak sesuai, Where tidak akan menemukan data yang dimaksud. bisa disederhanakan menjadi : cnado.execute "update `tbbeli` set `barang`='" & tdbgrid.columns(1) & "',`Qty`='" & tdbgrid.columns(2) where `NoBeli`='" cb.(0).text & "'" atau : 'kalo hanya Qty yg perlu diupdate, diperlukan NoBeli dan Barang sebagai Key. Dalam hal ini pastikan NoBeli dan barang tidak boleh diedit. cnado.execute "update `tbbeli` set `Qty`='" & tdbgrid.columns(2) where `NoBeli`='" cb.(0).text & "' and `barang`='" & rsbeli!barang & "'" Saya punya sedikit saran, lebih baik perubahan di save setelah semua kegiatan edit selesai dilakukan, tidak mengupdate setiap kali ada perubahan pada row tdbgrid. Karena itupun proses penyimpanan bisa menjadi lebih mudah dan terkontrol baik. contoh: sub simpandata() dim..... on error goto errMsg cnado.BeginTrans 'Tabel Header Transaksi (Pembelian) cnado.execute "Update TbTransBeli Set .... Where NoBeli='" & NoBeli & "'" 'Tabel Detil yang berisi barang-barang yang dibeli cnado.execute "Delete From TbBeli Where NoBeli='" & NoBeli & "'" Loop rows TDBGrid cnado.execute "Insert Into TbBeli (NoBeli, Barang, Qty) values (...) end loop cnado.CommitTrans exit sub errMsg: cnado.RollbackTrans end sub Regards, Yulianto --- In [email protected], "Eko" <[EMAIL PROTECTED]> wrote: > > makasih tanggapannya mas yulianto > sudah saya coba update manual terutama pd event on keypress > where-nya kan saya ambil dari recordset yg udah ada > tapi anehnya value yg terbaca dr recordset itu justru angka stlh diedit > pdhal di databasenya terbaca blm diedit > akhirnya where itu tdk menemukan data yg dimaksud > > update manualnya kurang lbh kayak gini: > cnado.execute "update `tbbeli` set 'NoBeli` = '" & tdbgrid.columns (0) & > "',`barang`='" & tdbgrid.columns(1) & "',`Qty`='" & tdbgrid.columns (2) where > `NoBeli`='" cb.(0).text & "' and `barang`='" & rsbeli!barang & "' and > `Qty`='" & rsbeli!Qty & "'" > > yg biasanya sering diedit nilai Qty > > karena blm brhasil akhirnya ketika posisi mo edit tdbgrid itu saya ganti > datasourcenya dg query yg satu tabel, baru stlh diedit dikembaliin lagi ke > datasource semula > mungkin ada yg pny ide lain, sangat diharapkan > > ----- Original Message ----- > From: "Yulianto" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Saturday, December 31, 2005 4:04 PM > Subject: [Programmer-VB] Re: insufficient key column..... > > > > Dear Eko, > > > > Setahu saya, untuk update langsung dari grid hanya bisa pada 1 table. > > karena kalo lebih dari 1 tabel biasanya dipengaruhi oleh relasi key > > antar table. dan ada kemungkinan terjadi inconsisten dalam relasi > > database (antar table). > > > > Untuk itu, ada baiknya lakukan update secara manual. > > > > > > Regards, > > Yulianto > > KwetChiro > > 0812-806-3138 > > > > --- In [email protected], "Eko" <[EMAIL PROTECTED]> > > wrote: > >> > >> temen2 vb ...mo minta tolong lagi nih.. > >> saya kan join 2 tabel n ditampilin ke tdbgrid > >> cuma klo diedit keluar message > >> "insufficient key column information for updating or refreshing" > >> gmn solusinya > >> > >> sbb klo cuma satu tabel bisa > >> saya baca di internet katanya ada 2 key yang diedit dlm waktu yang > > sama > >> > > > > > > > > > > > > > > > > > > Untuk keluar dari millis ini, kirim email kosong ke: > > [EMAIL PROTECTED] > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > Untuk keluar dari millis ini, kirim email kosong ke: [EMAIL PROTECTED] Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/Programmer-VB/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
