มีปัญหาเรื่อง VBA กับการจำกัดจำนวนเรคคอร์ดครับ
กระทู้เก่าบอร์ด อ.Yeadram

 1,721   4
URL.หัวข้อ / URL
มีปัญหาเรื่อง VBA กับการจำกัดจำนวนเรคคอร์ดครับ

พอดีเป็นมือใหม่นะครับ แต่ต้องเขียนโปรแกรมบันทึกข้อมูลพนักงานใช้ในแผนก โดยมีเงื่อนไขว่า ในคอลัมภ์รหัสพนักงานสามารถให้รหัสพนักงานเดียวกันซ้ำกันได้เพียง 5 เรคคอร์ดเท่านั้น (ทำโปรเจคเบอร์โทรครับ คือพนักงาน 1 คนสามารถคีย์เบอร์โทรเพื่อนสนิทได้ 5 เบอร์เท่านั้น เป็นสวัสดิการบริษัท) จะใช้ index กำหนดว่า No Duplicate ก็ไม่ได้ เพราะมันให้ซ้ำกันได้แต่ห้ามมากกว่า 5 รหัส เลยหาทางยังไม่ได้ครับ พอดีน้องที่ทำงานแนะนำว่าให้สร้างปุ่ม Save แล้วเอา โค้ด VBA ไปฝังในปุ่ม แต่ไม่รู้เทคนิคการเขียนครับ (งานก็เร่งจะเอาวันนี้ เครียดมากมาย) วานผู้รู้ช่วยตอบให้ด้วยนะครับ จะขอบคุณอย่างล้นพ้นเหลือคณา

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04888
Table : Employee
- Emp_ID (autonumber) (Primary key)
- Emp_Name (text , 30)

Table : EmpFriend (No Primary key)
- Emp_ID (index, duplicate ok)
- Friend (text, 30)

เอาตาราง EmpFriend ไปสร้างเป็นฟอร์ม (Datasheet) เซฟชื่อ sf_Friend
- textbox ชื่อ tEmpID ผูกกับฟิลด์ Emp_ID
- textbox ชื่อ tFriend ผูกกับฟิลด์ Friend
   ปิดฟอร์มย่อย sf_Friend

เอาตาราง Employee ไปสร้างเป็นฟอร์ม (ชิดขอบ) เซฟชื่อ mf_empFriend
- เพิ่มคอนโทรล sub form (sf_Friend)
- Link child field = Emp_id
- Link Master field = Emp_id
- ปิด และเซฟฟอร์ม mf_empFriend

เปิดฟอร์ม sf_Friend ในมุมมองออกแบบ
เขียนโค้ดในเหตุการณ์ BeforeUpdate ของฟอร์ม
Form_beforeUpdate(Cancel as integer)
dim max5 as long
max5 = dcount("Emp_ID","EmpFriend","[Emp_ID] = " & clng(me.tEmpID))
if max5 =>5 then
msgbox "Can not more than Five"
cancel=true
end if
End Sub


** เขียนสดหน้าเว็บ ไม่ได้ลองทำ
2 @R04889
ใช้ dcount ครับ ในเหตุการณ์ before update ใน form ครับ
dim xxx as interger
xxx=Dcount("รหัสพนักงาน","ตารางเก็บข้อมูล")
if xxx > 5 then
   msgbox "ssssss",vbok
endif
3 @R04890
เอ้า ไม่ทัน อ.yeadram
4 @R04941
ขอบคุณทุกท่านมากครับ ผมจะลองนำไปศึกษาดูครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3947s