... รบกวนอาจารย์สุภาพช่วยเข้ามาดูFunction Switch() หน่อยครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 307   1
URL.หัวข้อ / URL
... รบกวนอาจารย์สุภาพช่วยเข้ามาดูFunction Switch() หน่อยครับ

คือผมได้ใช้ Function Switch() ใน control source บน textbox ใน form น่ะครับ

ได้ใส่คำสั่งดังนี้

=Switch([WOR_SALARYTYPE]="รายเดือน" And [emp_monthlytodaywork]=0,([WOR_SALARY]+[SAL_EXTRASUM]+[SAL_REPAYINGDAYSUM]+[SAL_RELAXINGDAYSUM])*([DEB_SOCIAL]/100),[wor_salarytype]="รายวัน",([SAL_WORKINGDAYSUM]+[SAL_EXTRASUM]+[SAL_REPAYINGDAYSUM]+[SAL_RELAXINGDAYSUM])*([DEB_SOCIAL]/100),[wor_salarytype]="รายเดือน" And [emp_monthlytodaywork]=-1,([sal_workingdaysum]+[SAL_EXTRASUM]+[SAL_REPAYINGDAYSUM]+[SAL_RELAXINGDAYSUM])*([DEB_SOCIAL]/100),[WOR_SALARYTYPE]="รายวัน" And ([sal_workingdaysum]+[sal_extrasum]+[sal_repayingdaysum]+[sal_relaxingdaysum])<=1650,66,[wor_salarytype]="รายวัน" And ([SAL_WORKINGDAYSUM]+[SAL_EXTRASUM]+[SAL_REPAYINGDAYSUM]+[SAL_RELAXINGDAYSUM])>=15000,600,[wor_salarytype]="รายเดือน" And [emp_monthlytodaywork]=0 And ([wor_salary]+[SAL_EXTRASUM]+[SAL_REPAYINGDAYSUM]+[SAL_RELAXINGDAYSUM])<=1650,66,[WOR_SALARYTYPE]="รายเดือน" And [emp_monthlytodaywork]=0 And ([wor_salary]+[sal_extrasum]+[sal_repayingdaysum]+[sal_relaxingdaysum])>=15000,600,[wor_salarytype]="รายเดือน" And [emp_monthlytodaywork]=-1 And ([sal_workingdaysum]+[sal_extrasum]+[sal_repayingdaysum]+[sal_relaxingdaysum])<=1650,66,[wor_salarytype]="รายเดือน" And [emp_monthlytodaywork]=-1 And ([sal_workingdaysum]+[sal_extrasum]+[sal_repayingdaysum]+[sal_relaxingdaysum])>=15000,600)

ซึ่งผมเข้าใจว่าถ้าใช้ IIF จะใช้ได้แค่เงื่อนไขเดียวใช่ไหมครับ และถ้ามากกว่าสองเงื่อนไข ก็ต้องใช้ Switch

ทีนี้ ตอนแรกผมได้ใช้ switch() แต่ใช้เงื่อนไขแค่สามเงื่อนไข (ก็สามเงื่อนไขแรกสุดน่ะครับ) ปรากฎว่าได้ครับ แต่พอเพิ่มเงื่อนไขเข้าไปอีก ดังที่ตามข้างบน มันกลับ มันทำตามแค่สามเงื่อนไขแรกเท่านั้นน่ะครับ (ถึง run แล้วตรงเงื่อนไขอื่น มันก็จะไปทำตามแต่ในสามเงื่อนไขแรกเท่านั้นน่ะครับ)

ไม่ทราบว่าผมเขียนตรงไหนผิดไปหรือป่าว หรือว่า switch ใช้ได้มากสุดแค่ สามเงื่อนไขครับ
รบกวนอาจารย์ช่วยแนะนำด้วยนะครับ

แล้วถ้าวิธีนี้ไม่ได้จริงๆ มีวิธีอื่นอีกไหมครับ

ขอบคุณมากครับ

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

1 @R05046
ลองใส่เพิ่มที่ละเงื่อนไขดูครับ จะได้รู้ว่าเงื่อนไขไหนทำให้เกิดข้อผิดพลาดขึ้น

การใช้ Switch() หรือ IIF() จะไม่มีข้อจำกัดครับ แต่ถ้าจำไม่ผิดจะได้ไม่เกิน 1024 ตัวอักษรครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0927s