Mas fendi, karakteristik tabel di sql server harus memiliki satu field yang unik, atau kombinasi dari semua fieldnya tidak boleh ada yang sama persis, karena kalau tidak demikian, akan ketemu masalah seperti yang dihadapi fendi sekarang. Yang anda maksudkan ganda di semua field kan ? Itulah yang sql server tidak bisa menghapusnya, sampai anda menambah satu field unik, katakanlah autonumber (integer dengan identity true). Apakah ditempat anda programmer dan DBA di bedakan ? tidak bisakah kerja sama dengan DBA untuk memperbaiki struktur tabel ?
Dari saya belum ada usulan lain, kalau mau lewat vba, script yang saya beri contoh di salin ke object command atau langsung dari object connection, tapi jadi lebih ribet dan panjang. Mudah2an pakar di sini ada yang bisa kasih solusi, biar kita juga tahu cara tsb. On error resume next itu bukan berarti kalau ketemu error bablas saja. Bener bablasnya, artinya program jalan terus, tetapi restriksi dari logika programnya tetap tidak bisa ditembus seenaknya. Kalau sql server tidak bisa delete dia tidak akan mau ngedelete, dan akan memberitahukan kepada aplikasi berupa error message. Tetapi jika error handling di set resume next, error message tersebut tidak akan ditampilkan. Jadi yang di bablas-kan hanya pesan error, sedangkan prosesnya tetap diblok/dibatalkan. Aksan Kurdin From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, July 30, 2007 1:27 PM To: [email protected] Subject: RE: [Programmer-VB] nanya tentang VB code utk hapus data ganda Bro, Kalo betulinnya lewat program VB aja bisa gak, jadi gak usah oprek2 server soalnya pengunci databasenya sudah dibuka, dan server dikunci, dan tidak boleh di otak atik sama IT saya sudah pakai adodc data source, dia bisa menampilkan, dia juga bisa menghapus data, tapi khusus utk data yg ganda gak bisa Kira2 ada masukan lain... Regard & Thanks Fendy "M. Aksan Kurdin" <[EMAIL PROTECTED]> Sent by: [email protected] 30/07/07 10:56 AM Please respond to [email protected] To <[email protected]> cc Subject RE: [Programmer-VB] nanya tentang VB code utk hapus data ganda Ada field yang bisa dijadikan kunci ? Misalkan data anda adalah data customer, mungkin ada satu field bernama kode kustomer yang bisa dibuatkan kuncinya, tetapi ternyata sudah ada exist beberapa kode customer yang sama, bahkan ternyata kode yang sama dipakai oleh customer berbeda. Anda bisa periksa dari sql servernya dulu menggunakan TSQL di SQL Query Analyzer untuk memperoleh data yang sama. Misalkan patokan kita adalah kode kustomer yang sama: SELECT KodeCustomer, SUM(1) Jumlah FROM Customers GROUP BY KodeCustomer HAVING SUM(1) <> 1 Script di atas akan memberikan anda list kode kustomer dengan kode yang sama itu terbit berapa kali, contoh datanya: A00001 | 2 A00002 | 3 A00005 | 2 Untuk memeriksa isi detail dari tabel yang berkode sama, tinggal joinkan saja lagi dengan tabel aslinya: SELECT C.* FROM Customers C INNER JOIN ( SELECT KodeCustomer, SUM(1) Jumlah FROM Customers GROUP BY KodeCustomer HAVING SUM(1) <> 1 ) G ON C.KodeCustomer = G.KodeCustomer Dari list ini, mungkin harus ada campur tangan manual untuk menentukan customer mana yang akan memakai kode ganda tersebut, dan customer mana yang akan dibuang, atau akan diberi kode baru. Nah, dari sini, jika sudah beres kode yang bermasalah, anda bisa menggunakan cara temporary tabel untuk menampung data dari tabel asli yang dalam kondisi DISTINCT (ganda di eliminir): SELECT DISTINCT * INTO #Customer FROM Customer Lalu kosongkan tabel Customer: DELETE Customer Lalu masukkan kembali tabel sementara tadi ke tabel aslinya: INSERT Customer SELECT * FROM #Customer Optional, anda bisa buang temp. table dari memory: DROP TABLE #Customer. Dari contoh sederhana ini, anda bisa sesuaikan field2 yang diinginkan, termasuk kemungkinan key merupakan komposit dari dua field (mis. KodeCustomer + KodeArea). Selamat bekerja. Aksan Kurdin Ps. Jangan lupa backup dulu.. From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, July 30, 2007 9:03 AM To: [email protected] Subject: [Programmer-VB] nanya tentang VB code utk hapus data ganda Bro, Saya punya problem neeh dalam menghapus data yang ada diSQL Server dengan menggunakan ODBC karena data diserver ada banyak yang double datanya maka saya mau menghapus dulu data yang ada di databasenya semua setelah itu saya akan input lagi datanya tetapi saya ada problem saat menghapus datanya padahal saya sudah masukkan code "ON ERROR RESUME NEXT" tapi tetap saja keluar syntak errornya, dan datanya tidak terhapus apakah kawan-kawan ada yg punya cara atau masukan yang lain untuk menghapus data tsb, tapi jangan cara manual ya, lumayan ada sekitar seribu data Regard & Thanks Fendy
