setuju, bang.
Sebaiknya tidak main todong ...., yang berkeinginan untuk ikut menjawab
seolah-olah dilarang ikut jawab, kalau pertanyaan di spesifik-kan ke
seseorang saja.

Saya tertarik untuk menanggapi kasus DELETE, secara prinsip pemrograman saya
sepakat harus ada proses delete, semisal untuk menghilangkan data redundant,
data coba-coba, dan memang data yang tidak dibutuhkan. Tetapi jika terkait
dengan prinsip 'sistem database' yang berlaku, khususnya dengan prinsip
normalisasi, kita tidak bisa menghapus begitu saja *data master yang sudah
pernah di transaksikan*. Dalam hal ini, saya sangat merekomendasikan 'haram'
hukumnya menghapus data master, atau proses 'DELETE' tidak boleh dilakukan.

Data dalam bentuk normal akan memisahkan data2 tersebut dalam tabel2 yang
berdiri sendiri, jika di butuhkan, baru diambil lewat cara relasi.
contoh kita pernah menjual suku cadang dengan kode barang 'ABC01' di dua
tahun lalu. Di tabel transaksi jual, cukup kode 'ABC01' yang kita simpan,
sedang informasi lain seperti nama suku cadang, satuan, berat, dimensi, dan
lain-lain kita simpan dalam tabel master barang. Jika suatu saat kita hendak
menarik laporan penjualan yang juga menyertakan informasi lengkap nama
barang serta satuannya, maka kita bermain relasi tabel jual dan tabel master
barang untuk mengambil informasi tersebut bukan ? Sekarang bagaimana jika
kode 'ABC01' saya hapus dari tabel master barang ? Tentu saja laporan kalau
menggunakan relasi 'INNER JOIN' akan membuang kode 'ABC01' dari report,
menyebabkan transaksi penjualan berubah 'mengecil', tidak sama lagi dengan
laporan yang dibuat tahun lalu. Ada informasi yang hilang bukan ? Itulah
salah satu alasan kenapa proses DELETE di master barang haram hukumnya dalam
'sistem database', makanya ada aturan jangan men-conteng 'Cascade Delete' di
property relationship antar master dan transaksi (untuk MDB), untuk menjaga
kode barang yang sudah pernah di transaksikan tidak hilang dari catatan
master.

Untuk kode, type mismatch pertama adalah tipe Db yang anda deklarasikan
berbeda dengan tipe yang anda assignkan mas buday uhuy,

>> Dim Db As CurrentProject
...
>>            Set Db = CurrentProject.Connection
>>            CurrentProject.Connection.Execute "DELETE FROM TBLPart WHERE
kodepart = 'Me!kodepart'"

Db harusnya bertipa ADODB.Connection. Tetapi sebenarnya dalam hal ini
variabel Db tidak anda butuhkan dalam hal ini, karena anda bisa langsung
panggil metode execute dari obyek CurrentProject.Connection.
Kalau mau pake variabel, cara penulisannya :

Dim Db As ADODB.Connection
...
  Set Db = CurrentProject.Connection
  Db.Execute "DELETE FROM TBLPart WHERE kodepart = '" & Me!kodepart & "'"

Terkait dengan pertanyaan semula di reply pertama, dari mana pengisian field
Qty di master barang ? manual? atau berdasarkan transaksi keluar masuk ?

Aksan Kurdin

2008/6/23 Haer Talib <[EMAIL PROTECTED]>:
> Say bukan Aksan, boleh ikut jawab?
>
> ====
>
> Berikut ini tanggapan saya jika pertanyaan di atas = "Yes",
> else "abaikan saja ya..."
>
> * Prinsip: boleh saja menghapus record! kalo gak boleh, kita harus ajukan
> petisi ke pembuat sistem database agar perintah DELETE dihapus dari syntax
> dan dari standard! Penerapannya: ya sesuai keperluan. kalau di perusahaan
> ada rule tdk boleh, maka rule itu yg diaplikasikan. getu kira2...
>
> * Type mismatch? itu indikator yg jelas, anda membuat expresi yg
melibatkan
> tipe data yg beda.
> saya lihat sih di: WHERE kodepart = 'Me!kodepart'"
> mungkin bisa dicoba:
> WHERE kodepart = '" & Me!kodepart & "'"
>
> Haer Talib
>
>
> 2008/6/23 buday uhuy <[EMAIL PROTECTED]>:
>>
>> Mas Aksan,
>>
>> kalo menurut saya, tabel yang kuantitinya = 0, itu belum masuk transaksi,
>> jadi boleh saja di hapus. Ini saya coba buat codingnya, tapi masih ada
error
>> message "type mismatch". Ada yang bisa membantu mengkoreksi coding saya,
di
>> mana letak salahnya ?
>>
>> Private Sub BUTDelete_Click()
>> On Error GoTo Err_BUTDelete_Click
>> Dim Db As CurrentProject
>>
>>     If MsgBox("Yakin mau menghapus Part ? : " & Me!kodepart & "?",
vbYesNo
>> + vbQuestion, "Hapus Part") = vbYes Then
>>         If Me!quantity <> 0 Then
>>             MsgBox "Tidak bisa menghapus Part : " & Me!kodepart & "
karena
>> quantity Stock tidak sama dengan 0!", vbOKOnly + vbCritical, "Hapus Part"
>>         Else
>>            Set Db = CurrentProject.Connection
>>            CurrentProject.Connection.Execute "DELETE FROM TBLPart WHERE
>> kodepart = 'Me!kodepart'"
>>
>>             Me.Requery
>>             DoCmd.GoToRecord , , acNewRec
>>             Db.Close
>>         End If
>>     End If
>>
>> Exit_BUTDelete_Click:
>>     Exit Sub
>>
>> Err_BUTDelete_Click:
>>     MsgBox Err.Description, , "Hapus Part"
>>     Resume Exit_BUTDelete_Click
>>
>> End Sub
>>
>> ----- Original Message ----
>> From: aksan kurdin <[EMAIL PROTECTED]>
>> To: [email protected]
>> Sent: Friday, June 20, 2008 10:43:56
>> Subject: Re: [belajar-access] DeleteButton
>>
>> anda bisa TSQL ?
>> coba cari di SQL Book Online mengenai sintak query di SQL Server, lalu
>> jalankan di adp dengan memanfaatkan obyek connection dari
>> currentproject:
>>
>> sub btnDelete_Click( )
>> currentproject. connection. execute "DELETE barang WHERE qty = 0"
>> end sub
>>
>> aksan kurdin
>>
>> ps. jika tabel barang adalah master barang, maka desain sistem anda
>> tidak benar jika dibolehkan menghapus barang yang sudah pernah
>> transaksi.
>>
>> 2008/6/19 buday uhuy <herr_haikal@ yahoo.com>:
>> > Dear All....
>> >
>> > Perkenalkan saya budi, anggota baru milis ini, dan masih tahap
>> > pemula/belajar belajar Access, dan selalu bingung ketika memulai
coding.
>> > Mudah-mudahan melalui milis ini saya bisa banyak belajar mengenai
>> > pemrograman di Access.
>> >
>> > Kebetulan saya saat ini sedang mengerjakan Access Data Project (Adp)
>> > dengan
>> > database SQL Server 2000. Saya buat FORM yang datanya di ambil dari
>> > tabel
>> > barang, misalnya field2 yang ada di tabel barang:
>> > 1. kodebarang
>> > 2. nama barang
>> > 3. quantity
>> > Lalu di FORM saya tambahkan button delete (BTNDelete) untuk menghapus
>> > data
>> > per-record. Record akan di hapus kalo quantity = 0.
>> > Yang saya ingin tanyakan, bagaimana membuat coding untuk BTNDelete ini
?
>> > Mungkin Moderator atau temen2 yang sudah Advance bisa membantu saya.
>> > Sebelumnya saya ucapkan terima kasih.
>> >
>> > Salam,
>> > Budi
>> >
>> > Send instant messages to your online friends http://uk.messenger
>> > .yahoo.com
>> >
>>
>> --
>> Aksan Kurdin
>>
>> Send instant messages to your online friends
http://uk.messenger.yahoo.com
>
>
> --
> [Haer Talib]
> Office Access MVP
> Meet me at www.RumahAccess.com
>
> =>
> 



-- 
Aksan Kurdin

Kirim email ke