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