แนะนำการเขียนโปรแกรมตัดเกรด
กระทู้เก่าบอร์ด อ.Yeadram

 12,928   10
URL.หัวข้อ / URL
แนะนำการเขียนโปรแกรมตัดเกรด

อยากคำนวณเลขคะแนนที่บันทึกไว้ เอามาคิดเ็ป็น เกรดเฉยๆ ครับ ไม่ทราบต้องใช้ฟังก์ชั่นไหน เคยใช้แต่ java ใช้ if else ขอบคุณล่วงหน้าครับ

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

1 @R03084
ใช้ if นั่นแหละคับ ลองประยุกต์จาก java ดูคับ ถ้าเข้าใจ java ก้อไม่น่าจะยากนี่คับแต่รูปแบบอาจเปลี่ยนแปลงนิดหน่อย เช่น

if คะแนน = เงื่อนไข then

แสดงเกรด

ElseIf คะแนน = เงื่อนไข then

แสดงเกรด

Else

แสดงเกรด

End If
2 @R03085
ที่ไม่เข้าใจคือต้องไปเขียนคำสั่งตรงไหนครับ ms access ครับ ทำตรงคิวรี่ได้หรือไม่ แนะนำอีกทีครับ ขอบพระคุณอย่างสูง
3 @R03090
เขียนในส่วนฟอร์มโดยเลือก properties แล้วเลือก Event ครับเป็นการดึง VB เข้ามาช่วยในการเขียนครับ
4 @R03095
ทำตรงคิวรี่ได้หรือไม่..

ในคิวรี่ หรือใน sql statement ก็สามารถใช้ if ได้ครับ
รูปแบบคือ iif(เงื่อนไข, เมื่อเป็นจริง, เมื่อเป็นเท็จ)

ตัวอย่างการเขียนผ่านนิพจน์
mGrade=iif([คะแนน]>=80,4,iif([คะแนน]>=70,3,2))

ตัวอย่างการเขียนโดย statement
select iif([คะแนน]>=80,4,iif([คะแนน]>=70,3,2)) as mGrade from table;

จากตัวอย่างเป็นการใช้ if ซ้อนกันสอง รอบ หรือ สอง วง เราสามารถใช้ if ซ้อนกันได้หลายวงได้ครับ (แต่ไม่น่าจะเกิน 7 วง ซึ่งเป็นข้อจำกัดของ access ครับ เอ หรือมากกว่า 7 ก็ไม่แน่ใจ)

ถ้ากรณีใช้ if ซ้อนกันมากจนโปรแกรมไม่ยอม ผมแนะนำว่าใช้สร้างเป็นตารางใหม่ แล้วเอามา คิวรี่ ประกอบกับ if ดีกว่าครับ

tbNew
point      grade
80           4
70           3
60           2
50           1
0             0
5 @R03182
จะลองดูนะครับ มึนจัง มีใครทำสำเร็จให้มั่งไม๊ครับ มือใหม่ access

ขอบคุณสำหรับคำตอบครับ
6 @R03189
งงจัง ช่วยสร้างไฟล์ให้หน่อยไ้ด้ไม๊ครับ ใส่โค้ดให้นิดนึงเดี๋ยวผมเอามาศึกษาต่อ
7 @R03196
ตารางของคุณชื่ออะไร (เอาเป๊ะๆ)
มีฟิลด์อะไรบ้าง (เอาเป๊ะๆ อย่าสมมติ)
แต่ละฟิลด์เก็บเป็นชนิดข้อมูลแบบไหน

ถ้ามันเยอะมาก ก็ไม่ต้องเอามาทั้งหมด เอาแค่ที่สำคัญ
- ชื่อตาราง
- ฟิลด์หลัก (primary หรือ index ของตารางนี้)
- ฟิลด์คะแนน

ลองคิดตามช้าๆ ครับ ก่อนอื่นหาสิ่งที่ผมขอ มาให้ผมครับ ถ้าคุณหามาได้ เข้าใจความหมายของสิ่งที่ผมขอ แสดงว่าคุณเริ่มจะเข้าใจมันบ้างแล้ว
ลำดับต่อไปผมจะให้ sql กับคุณ คุณก็เอาไปลองทำ แล้วดูผล แล้วศึกษาจะได้เห็นภาพชัดเจนมากขึ้น อาจจะให้คุณร้อง อ๋อ เลยก็ได้ ถ้ามัวรอตัวอย่างของคนอื่นทั้งหมด คุณอาจเสียโอกาสในการเรียนรู้ว่า     ชื่อออบเจค ชื่อฟิลด์ ชนิดข้อมูล ดัชนี คำเหล่านี้มันหมายถึงอะไรนะครับ
8 @R03207
ทำไมโพสไม่ึขึ้น
9 @R03208
ตารางแรกเก็บ
stuid   number   P Key รหัส
stuname text   ชื่อ
ตารางที่ 2 เก็บคะแนน
scoid   number   P Key
stuid number F key
score number   เก็บคะแนน
grade number เก็บเกรด
ต้องการแค่ประมวลผล ฟิลล์ score ให้
0-49=0   50-54=1 55-59=1.5 60-64=2 65-69=2.5 70-74=3 75-79=3.5 80-100=4 ลงไปอยู่ช่องเกรดครับ
10 @R03243
ลองใช้ switch ดูน่าจะได้
ในกรณีให้แสดงบนฟอร์ม
Private Sub score_AfterUpdate()
Me.grade = Switch([score] < 50, 0, [score] >= 50 And [score] < 55, 1, [score] >= 55 And [score] < 60, 1.5, [score] >= 60 And [score] < 65, 2, [score] >= 65 And [score] < 70, 2.5, [score] >= 70 And [score] < 75, 3, [score] >= 75 And [score] < 80, 3.5, [score] >= 80, 4, True, "")
End Sub

หากแสดงที่ Query

result : Switch([score] < 50, 0, [score] >= 50 And [score] < 55, 1, [score] >= 55 And [score] < 60, 1.5, [score] >= 60 And [score] < 65, 2, [score] >= 65 And [score] < 70, 2.5, [score] >= 70 And [score] < 75, 3, [score] >= 75 And [score] < 80, 3.5, [score] >= 80, 4, True, "")
วิธีการใช้ เลือกตามใจชอบลองนำไปประยุกต์ใช้ดูตามความเหมาะสม

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