msgbox
กระทู้เก่าบอร์ด อ.Yeadram

 1,281   4
URL.หัวข้อ / URL
msgbox

ไม่รู้จะอธิบายยังไงค่ะเลยขอใช้รูปช่วยแล้วกันนะคะจะได้เห็นภาพ



ไม่ทราบว่าจะเขียนโค้ดแบบมีเงื่อนไขยังไงนะค่ะ
สมมติว่าต้องการจะเพิ่มพนักงานเข้าทำงานโดยเลือกรหัสช่วงเวลาการทำงานที่ต้องการ โดยแต่ละช่วงการทำงานจะมีพนักงานทำงานได้ไม่เกิน 2 คน สมมติว่า รหัสT1 มีพนักงานทำงานครบแล้วคือ 2 คน   
-จากรูปถ้าเลือก T1 ให้ขึ้น msgbox ว่า "ช่วงเวลานี้มีพนักงานเต็มแล้ว" จะเขียนโค้ดได้อย่างไรคะ (สร้าง Query นับจำนวนพนักงานในแต่ละช่วงแล้วค่ะ) แต่ไม่ทราบว่าจะเอามาเช็คในเงื่อนไขอย่างไร

อันนี้ค่ะ
SELECT [พนักงาน].TimeID, Count([พนักงาน].RepID) AS จำนวนพนักงานในแต่ละช่วง
FROM พนักงาน
GROUP BY [พนักงาน].TimeID;


ใครทราบช่วยเขียนโค้ดหน่อยได้มั้ยคะ ไม่รู้จริงๆว่าต้องทำไง





   

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

1 @R03413
วิธีที่ 1 แก้ source ของคอมโบให้อัพเดตตลอด
     คือ ถ้าช่วงเวลา T1 เต็มแล้ว ก็อย่าให้ T1 โผล่มาให้เลือกอีก
     แบบนี้ไม่ต้องมี msgbox ให้ผู้ใช้รำคาญใจ

วิธีที่ 2 เอาวิธีแบบคุณว่า
     โดยเขียนโค้ดฝังไว้ในเหตุการณ์ onChange ของคอมโบ
      คือ เมื่อคลิ๊กเลือกให้โค้ดไปนับจำนวนพนักงานของช่วงเวลานั้น แล้วขึ้น msgbox บอกผู้ใช้

2 @R03414
แล้วต้องเขียนโค้ดยังไงบ้างอ่ะคะ(ไม่ค่อยจะเข้าใจเท่าไหร่) เขียนไม่เป็นอ่ะค่ะไม่รู้ว่าต้องใช้อะไรบ้าง ช่วยหน่อยนะคะ
3 @R03415
ต้องเลือกครับ ว่าจะใช้วิธีไหน
วิธีที่ 1 ไม่ต้องเขียนโค้ดอะไรเลย ไปปรับแต่ง แหล่งข้อมูลของคอมโบ ให้เป็นคิวรี่
ตารางที่คุณเก็บ timeid คือตารางอะไร, คอลัมภ์ที่1 ของคอมโบชื่ออะไร, คอลัมภ์ที่ 2 ของคอมโบชื่ออะไร เอาชื่อมาโพสต์ไว้ครับผมจะเขียน statement ให้ ถ้าให้ผมสมมติเอาเอง เดี๋ยวจะไม่รู้กันอีก ว่าผมหมายถึงอะไร


ถ้าจะใช้วิธีที่ 2
Private Sub Cmb_Change()
if dcount("RepID","[พนักงาน]", "[TimeID] Like '" & Cmb & "'") >=2 then msgbox "เต็มแล้ว ห้ามเลือก"
End Sub
4 @R03419
ตารางที่เก็บ TimeID คือตาราง ช่วงเวลาการทำงานค่ะ มี Time กับ TimeID TimeID เป็น PK ค่ะ ส่วนคอมโบคอลัมป์แรกชื่อ รหัสช่วงเวลา_Label ส่วนคอลัมป์ ที่สองชื่อ Combo36 ค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3702s