กระทู้เก่าบอร์ด อ.Yeadram
3,988 7
URL.หัวข้อ /
URL
อยาก Run ลำดับใน Sub form ครับ
อยากจะสอบถามท่านอาจารย์ทุกท่านครับ คือผมออกแบบฟอร์มเพื่อจะแสดงประวัติการฝึกอบรมพนักงานแต่ละคน โดยที่มี Table จัดเก็บรหัสพนักงานและคอร์สที่อบรม โดยลำดับในการจัดเก็บผมให้เป็น Auto Number
**เข้าสู่คำถามครับ*** ผมต้องตั้งค่าอย่างไรในช่องลำดับ (ตามรูปนะครับ) ให้เรียงลำดับ 1,2,3......ไปเรื่อยๆครับ เพราะว่าถ้าดึงข้อมูลมาตรงๆจาก Table มันก็จะโดดข้ามไปเรื่อยตามลำดับการคีย์ข้อมูล เพราะออกแบบ Table ให้รหัสพนักงานเดียวกันสามารถคีย์ได้หลาย record เพราะ 1 คนอบรมหลายเรื่อง แต่ปัญหาก็ตอนที่นำแสดงในฟอร์มนี่แหล่ะครับ ต้องทำยังไง ขอคำชี้แนะด้วยครับ
ขอบพระคุณล่วงหน้า
**เข้าสู่คำถามครับ*** ผมต้องตั้งค่าอย่างไรในช่องลำดับ (ตามรูปนะครับ) ให้เรียงลำดับ 1,2,3......ไปเรื่อยๆครับ เพราะว่าถ้าดึงข้อมูลมาตรงๆจาก Table มันก็จะโดดข้ามไปเรื่อยตามลำดับการคีย์ข้อมูล เพราะออกแบบ Table ให้รหัสพนักงานเดียวกันสามารถคีย์ได้หลาย record เพราะ 1 คนอบรมหลายเรื่อง แต่ปัญหาก็ตอนที่นำแสดงในฟอร์มนี่แหล่ะครับ ต้องทำยังไง ขอคำชี้แนะด้วยครับ
ขอบพระคุณล่วงหน้า
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R15304
ถ้าไม่จำเป็นจริงๆ ก็ไม่ต้องแสดงค่าหรอกครับ - ปกติผมจะไม่แสดงค่าจำพวกลำดับที่ เพราะทำไม่คุ้มเหนื่อย แล้วก็ไม่เคยมี ผู้ใช้งานร้องขอให้มี - ยกเว้นกรณีออกเป็นรายงาน
2 @R15308
ถ้าต้องทำจริงๆ อย่างนี้ครับ
- คุณต้องมีฟิลด์จัดเก็บข้อมูลเป็นตัวเลขแบบไม่ซ้ำกัน ในคำถามคุณ ฟิลด์ที่เป็น AutoNumber อย่างนี้ใช้ได้ครับ
- เขียนฟังก์ชั่นใน Module ตามนี้ครับ
- ใน TextBox ที่ต้องการให้แสดง ลำดับที่ บนฟอร์ม โดยสมมุติชื่อฟิลด์ในตารางข้อมูลที่เป็น AutoNumber ชื่อ ID เขียนคำสั่งใน Data > Control Source ดังนี้:
=IIf(IsNull([ID]),Null,myRunningSum([Form],"ID",[ID]))
ประมาณนี้ครับ ลองดูครับ
- คุณต้องมีฟิลด์จัดเก็บข้อมูลเป็นตัวเลขแบบไม่ซ้ำกัน ในคำถามคุณ ฟิลด์ที่เป็น AutoNumber อย่างนี้ใช้ได้ครับ
- เขียนฟังก์ชั่นใน Module ตามนี้ครับ
Function myRunningSum(myForm As Form, myFieldName As String, myFieldNumber As Long) As Long
Dim rs As DAO.Recordset
Set rs = myForm.RecordsetClone
rs.FindFirst "[" & myFieldName & "] = " & myFieldNumber
If Not rs.NoMatch Then
myRunningSum = rs.AbsolutePosition + 1
End If
rs.Close: Set rs = Nothing
End Function
- ใน TextBox ที่ต้องการให้แสดง ลำดับที่ บนฟอร์ม โดยสมมุติชื่อฟิลด์ในตารางข้อมูลที่เป็น AutoNumber ชื่อ ID เขียนคำสั่งใน Data > Control Source ดังนี้:
=IIf(IsNull([ID]),Null,myRunningSum([Form],"ID",[ID]))
ประมาณนี้ครับ ลองดูครับ
3 @R15316
ขอบคุณครับ เดี๋ยวจะลองทำตามดูครับ
4 @R16861
จากตัวอย่างอาจารย์ TTT มีวิธีรันแบบอื่นไหมครับ พอดีผมลองแล้ว มันรันช้ามากเลยครับ ถ้ามีRecord เยอะใน subform และมันก็จะค้างเป็นช่วงๆครับด้วยครับต้องเอา Mouse ไปชี้ที่แถว No ถึงจะทำงานครับต่อครับ
ผมอยากให้มันเปิด Form มาแล้วรันทั้นทีพอมีวิธีเขียนอื่นหรือไม่ครับ
ผมอยากให้มันเปิด Form มาแล้วรันทั้นทีพอมีวิธีเขียนอื่นหรือไม่ครับ
5 @R16862
ท่านไดพอทราบ แวะเข้ามาแนะนำด้วยนะครับ
6 @R16865
เห็นด้วยกับ อ.PichaiTC ครับ คือไม่จำเป็นจะต้องแสดงลำดับที่ในฟอร์ม เพราะควรจะไปดูใน Report มากกว่าครับ
วัตถุประสงค์ของฟอร์ม คือ เพื่อใช้บันทึกข้อมูล หรือเป็นตัวเชื่อมต่อการทำงานกับฐานข้อมูลหรือรายงาน เราไม่ได้ใช้ฟอร์มเพื่อให้ดูเป็นรายงานครับ เพราะ Output จริงๆที่จะใช้ดูหรือพิมพ์ออกมา คือรายงาน หรือ Report ต่างหากครับ แต่ถ้าอยากจะทำจริงๆ ก็ลองศึกษาฟังก์ชั่น GetNextCounter ดูก็ได้ครับ
How do I get row numbers shown in an MS Access Query?
TheCounter: GetNextCounter(myPkValue) This calls a new function, ... >> Microsoft Access MVP >> > >OK
http://us.generation-nt.com/answer/how-do-i-get-row-numbers-shown-an-ms-access-query-help-18619282.html
วัตถุประสงค์ของฟอร์ม คือ เพื่อใช้บันทึกข้อมูล หรือเป็นตัวเชื่อมต่อการทำงานกับฐานข้อมูลหรือรายงาน เราไม่ได้ใช้ฟอร์มเพื่อให้ดูเป็นรายงานครับ เพราะ Output จริงๆที่จะใช้ดูหรือพิมพ์ออกมา คือรายงาน หรือ Report ต่างหากครับ แต่ถ้าอยากจะทำจริงๆ ก็ลองศึกษาฟังก์ชั่น GetNextCounter ดูก็ได้ครับ
How do I get row numbers shown in an MS Access Query?
TheCounter: GetNextCounter(myPkValue) This calls a new function, ... >> Microsoft Access MVP >> > >OK
http://us.generation-nt.com/answer/how-do-i-get-row-numbers-shown-an-ms-access-query-help-18619282.html
7 @R16867
ขอบคุณ คุณSaifarครับ
พอดีเลี่ยงไม่ได้ครับ นายจะเอาครับ
จะลองศึกษาดูครับ
พอดีเลี่ยงไม่ได้ครับ นายจะเอาครับ
จะลองศึกษาดูครับ
Time: 0.3051s