Jump to content
grenzz

Bantuan: Prevent Duplicate Record In Access 2007

Recommended Posts

As-Salam Saudara Saudari Putera.com

Saya ingin memohon tunjuk ajar berkenaan [i]Access 2007[/i]. Saya sedang membangunkan [i]database [/i]ringkas berkenaan tempahan kenderaan. Saya ingin bertanya, bagaimana saya boleh mengelakkan [i]duplicate record [/i]daripada dimasukkan oleh pengguna?

Untuk maklumat, di dalam [i]table [/i]saya, terdapat [i]fieldCar, Date Start, Time Start, Until Date [/i]& [i]Time End[/i] di mana saya ingin mengelakkan pengguna dari menempah kenderaan yang telah ditempah oleh pengguna sebelum ini berdasarkan 5 [i]field [/i]yang saya nyatakan di atas ([i]Car, Date Start, Time Start, Until Date [/i]& [i]Time End[/i]). Untuk maklumat lanjut, [i]Until Date [/i]& [i]Time End[/i] [i]are not compulsary, [/i]hanya [i]Car, Date Start [/i]&[i] Time Start [/i]sahaja yang [i]compulsary[/i].

Mohon bantuan dan kerjasama rakan-rakan Putera.com untuk membantu saya kerana pengetahuan saya berkenaan Access 2007 adalah terhad.

Terima kasih ( ^_^)

Share this post


Link to post
Share on other sites
Salam. Saya try jawab.

Untuk elak duplicate record ni basic nya depend pada Primary Key (PK) yang diset kan untuk each table. PK ni ibarat No IC pada kita warga Malaysia :D

So perkara yang sama patut diapply pada table car tersebut. Contoh yang sedara bagi sekarang ni ada Car, Date Start, Time Start, Until Date & Time End. Kurang jelas sedikit berkaitan dengan column Car. Kalau column Car tersebut adalah untuk data berupa No Pendaftaran Kenderaan, boleh la diguna pakai untuk elak duplicate record ni kerana yang sedia tahu No Pendaftaran Kenderaan adalah unik dan takda nombor pendaftaran yang serupa. So boleh la disetkan column Car tersebut sebagai PK untuk table tu. So bila create new record, dia akan cek sama ada data sudah sedia ada di table or kemasukan baru (new entry).

Untuk bacaan lanjut primary key:
[url="http://office.microsoft.com/en-us/access-help/create-or-remove-a-primary-key-HA010014099.aspx"]http://office.micros...A010014099.aspx[/url]
[url="http://databases.about.com/cs/administration/g/primarykey.htm"]http://databases.abo.../primarykey.htm[/url]

[media]http://www.youtube.com/watch?v=DfuTxSY7Kac[/media]

Share this post


Link to post
Share on other sites
Salam saudara Mod ahaksz28

Terima kasih atas penjelasan yang diberikan. Saya sebenarnya sudah menjadikan [i]Car [/i]sebagai [i]PK [/i]kerana tidak mungkin no pendaftaran kenderaan boleh berulang. Apa yang saya tidak faham, bagaimana boleh saya mengehadkan kemasukan rekod daripada berulang.

Sebagai contoh, jika saya telah menempah kenderaan [b]ABC 123 [/b]([i]Car[/i]) pada tarikh [b]13/03/2012 [/b]([i]Date Start[/i]) dan pada masa [b]AM[/b] ([i]Time Start[/i]), seseorang tidak lagi boleh menempah kenderaan tersebut pada tarikh ([i]Date Start[/i]) dan pada masa ([i]Time Start[/i]) sebagaimana yang saya tempah itu, mungkin terdapat [i]popup [/i]yang akan memaklumkan bahawa kenderaan berkenaan telah ditempah. Untuk pengetahuan di [i]field Time Start[/i], saya cuma memberi pilihan [b]AM [/b]dan [b]PM [/b]sahaja. Ini bermakna menurut contoh, seseorang itu hanya boleh menempah kenderaan [b]ABC 123 [/b]([i]Car[/i]) pada tarikh [b]13/03/2012 [/b]([i]Date[/i] [i]Start[/i]) dan pada masa [b]PM [/b]([i]Time Start[/i]) sahaja dan bukannya [b]AM [/b]kerana saya sudah menempahnya. Harap saudara Mod boleh membantu saya.

Terima kasih.

Share this post


Link to post
Share on other sites
ko buat checking jer arr... bila data dah ada kasi promt up message bagitau yang data already exist... ko pakai language apa nih..?? VB ke..??

Share this post


Link to post
Share on other sites
[quote name='akuccputsedut' timestamp='1331603298' post='1080067']
ko buat checking jer arr... bila data dah ada kasi promt up message bagitau yang data already exist... ko pakai language apa nih..?? VB ke..??
[/quote]

Macammn nak buat checking tu ya? Boleh tolong ajarkan. Saya tak biasa dengan VB..sebelum ni [i]event pun [/i]guna Macro je. Terima kasih.

Share this post


Link to post
Share on other sites
[quote name='grenzz' timestamp='1331608222' post='1080069']
Macammn nak buat checking tu ya? Boleh tolong ajarkan. Saya tak biasa dengan VB..sebelum ni [i]event pun [/i]guna Macro je. Terima kasih.
[/quote]

macro pun guna VB jugak laa... sekarang nih system ko nih guna excel ke..??? link ke database access???

Share this post


Link to post
Share on other sites
[quote name='akuccputsedut' timestamp='1331608861' post='1080070']
macro pun guna VB jugak laa... sekarang nih system ko nih guna excel ke..??? link ke database access???
[/quote]

Saya tak pakai excel..direct guna Access 2007..harap dapat membantu kawan-kawan kat sini..terima kasih.

Share this post


Link to post
Share on other sites
aku nih tak berapa pandai ler guna access nih terus terang cakap kan.. tapi kan aku interested nak tau jugak.. camne hang insert data dalam database hang pakai wizard ke atau query..???

boleh paste kat sini tak query hang tuh...

Share this post


Link to post
Share on other sites
<p>Pendapat aku:</p>
<ul>
<li>dia key mesti guna form kan?</li>
<li>Guna VBA (Visual Basic for Aplication) utk check tarikh dah ada org tempah ke belum</li>
<li>Kalau ada, cek pulak masa (Start Time) ..elok start time ni guna dropdown jer supaya tidak berlaku key in berbagai btk.. cth ko buat 0900,1000,1100,1200,1300,1400 dan seterusnya.. kalu nak wat skala 30 minit pun bh jugak</li>
<li>Nak cek tu guna if...endif pun boleh dah rasanya....</li>
<li>kalu rasa pening gak cuba ko send kat aku apa yg ko dah buat tu...miess2{at]hotmail.com.. aku pun tgh cuti skrg ni dop tahu nok wat mende</li>
</ul>

Share this post


Link to post
Share on other sites
Owh.. dah settle ke belum?

Maybe boleh guna cara macam ini... Pertama kita guna sebagai Dlookup... Ini dia punya syntax dalam VBA

[CODE]
'Kalau pakai string macam ini
DLookup("FieldName" , "TableName" , "Criteria= 'string'")

'Kalau nombor macam ini
DLookup("FieldName" , "TableName" , "Criteria = n")

'Kalau tarikh macam ini
DLookup("FieldName" , "TableName" , "Criteria= #date#")
[/CODE]

Jadi macam mana nak search kalau ada orang guna kenderaan? Maybe kita boleh gunakan "Dlookup" untuk mencari rekod sama ada wujud atau tidak berdasarkan no plat kereta.. Contohnya

[CODE]
'Anggap no kereta itu adalah "BKY 1234", dan data type adalah jenis string

Dim tarikhStart,tarikhUntil as Date

tarikhStart = DLookup("tarikh_Start" , "tbl_car_event" , "no_plat= 'BKY 1234'")
tarikhUntil = DLookup("tarikh_Until" , "tbl_car_event" , "no_plat= 'BKY 1234'")

If tarikhStart = tarikhStart.Text And tarikhUntil = tarikhUntil.Text Then

MsgBox "Kerete sedang digunakan"

Else

'Buat record untuk save data, contoh DoCmd.RunCommand acCmdSaveRecord.

End If

[/CODE]

Sorry tak igt sangat syntax VBA macam mana. Kalau ada apa-apa error leh tanya... hehe.. Dan kalau boleh, setiap coding VBA pada line atas sekali tambah "Option Excplicit". Bertujuan system akan memaksa variable declare terlebih dahulu untuk melaksanakan arahan. Ini boleh mengurangkan bug ketika system sedang running...

Gud Luck

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...