makasih..makasih... emang klo key pencariannya hanya menggunakan primary key atau field laen yg tidak boleh diedit maka permasalahannya tidak serumit ini.
tapi ini ceritanya laen..jadi begini ada 2 tabel yaitu jbtbh(master) dan jbtbd(detail) jbtbh---> No_BTB,Tanggal,Kd_supp jbtbd---> No_BTB,No_PO,No_PPB,Jenis,Kd_Brg,Satuan,QTY,Ket kendala updatenya di jbtbd karena itu tabel detail, dmn dg No_BTB yg sama akan ada bbrp record yg record2 itu bs jadi No_PO dan No_PPB nya sama, bs jg lain yg pasti lain adl Kd_Brg itupun kadang kosong ketika Kd_Brg kosong sbg gantinya ada isian di field Ket makanya fieldnya saya ngacu ke hampir semua field yg nilai2 field itu sebagian mau tdk mau hrs diambil dari recordset hehe..rumit yah... itulah repotnya klo bikin program ndak dari awal sedkt info..ini saya upgrade dari program lama yg under dos jadi database yg lama kan hrs tetap terpakai Btw thanks bantuannya n klo ada masukan lain...dengan senang hati saya pelajari ----- Original Message ----- From: "Yulianto" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Tuesday, January 03, 2006 12:30 PM Subject: [Programmer-VB] Re: insufficient key column..... > 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 > > > > > > > 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/
