การใช้ Do While Loop



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

27 ธ.ค. 64 , 15:04:21
อ่าน 172 ครั้ง

kn208598

  • สมาชิกไท.Access
  • กระทู้: 17

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

การใช้ Do While Loop
« เมื่อ: 27 ธ.ค. 64 , 15:04:21 »
ผมอยากให้ค่าในฟิลด์ Salary มาแสดงที่ฟิลด์ ID ทุกๆเรคคอร์ด  เมื่อกดปุ่ม command 5
โค้ดที่ใช้เมื่อกดปุ่ม Command 5 แล้ว มันใส่ค่าในช่อง ID เป็นค่าแรกของ Salary ทุดเรคคอร์ดเลยครับ 
ต้องแก้โค้ดอย่างไรครับ..ขอขอบคุณครับ



 

27 ธ.ค. 64 , 15:33:55
ตอบกลับ #1

PNR

: การใช้ Do While Loop
« ตอบกลับ #1 เมื่อ: 27 ธ.ค. 64 , 15:33:55 »
ฟิลด์ Salary มาแสดงที่ฟิลด์ ID ทุกๆเรคคอร์ด

ผมไม่แน่ใจเกี่ยวกับการนำไปใช้งานในอนาคต
กรณีที่มี salary เหมือนกัน ข้อมูล ID ที่เก็บเข้าไปก็จะซ้ำกันนะครับ

วิธีทำง่ายๆใช้ gotoRecord มาช่วยได้ครับ

โค๊ด: [Select]
Dim rst As Recordset
Dim strFirstSalary As String
Set rst = Me.RecordsetClone
If rst.RecordCount = "0" Then
MsgBox "No record"
Else
rst.MoveFirst
strFirstSalary = rst!Salary
DoCmd.GoToRecord , , acFirst
Do Until rst.EOF
Me.ID = strFirstSalary
DoCmd.GoToRecord , , acNext
rst.MoveNext
Loop
End If
« แก้ไขครั้งสุดท้าย: 27 ธ.ค. 64 , 16:01:02 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: kn208598

27 ธ.ค. 64 , 15:49:41
ตอบกลับ #2

kn208598

  • สมาชิกไท.Access
  • กระทู้: 17

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: การใช้ Do While Loop
« ตอบกลับ #2 เมื่อ: 27 ธ.ค. 64 , 15:49:41 »
อ๋อครับ..คือผมยกตัวอย่างเพื่อให้ทราบว่าโค้ดตัวนี้มันผิดอย่างไร และต้องแก้อย่างไรน่ะครับ..ขอบคุณครับ..

 

27 ธ.ค. 64 , 15:53:23
ตอบกลับ #3

PNR

: การใช้ Do While Loop
« ตอบกลับ #3 เมื่อ: 27 ธ.ค. 64 , 15:53:23 »
อ๋อครับ..คือผมยกตัวอย่างเพื่อให้ทราบว่าโค้ดตัวนี้มันผิดอย่างไร และต้องแก้อย่างไรน่ะครับ..ขอบคุณครับ..

ตัวอย่างด้านบนได้เลยครับ

ปกติถ้าจะให้ record ในตาราง นั้นอัพเดทแล้วไปยังเรคคอร์ดต่อไปใช้
rst.movenext อย่างเดียวก็ได้แล้วครับ

แต่ถ้าบนฟอร์มและให้ข้อมูลวางบน Control Textbox ต้องใช้การ gotoRecord เพื่อให้มันสามารถเลื่อนไปยังตัวต่อไปได้ครับ
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: kn208598

27 ธ.ค. 64 , 15:58:35
ตอบกลับ #4

kn208598

  • สมาชิกไท.Access
  • กระทู้: 17

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: การใช้ Do While Loop
« ตอบกลับ #4 เมื่อ: 27 ธ.ค. 64 , 15:58:35 »
อ๋อครับ...ขอบคุณมากครับ..

 

27 ธ.ค. 64 , 16:19:49
ตอบกลับ #5

kn208598

  • สมาชิกไท.Access
  • กระทู้: 17

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: การใช้ Do While Loop
« ตอบกลับ #5 เมื่อ: 27 ธ.ค. 64 , 16:19:49 »
คุณ PNK ครับ..ผมแก้โค้ดแล้ว เมื่อรัน ก็ได้ผลลัพท์ เหมือนเดิม ครับ..หรือผมยังผิดตรงไหน.รบกวนดูให้หน่อยได้ไหมครับ..ผมแนบไฟล์มาด้วยครับ..ขอขอบคุณมากน่ะครับ

 

27 ธ.ค. 64 , 18:14:51
ตอบกลับ #6

PNR

: การใช้ Do While Loop
« ตอบกลับ #6 เมื่อ: 27 ธ.ค. 64 , 18:14:51 »
ขาดโค๊ดไปบรรทัดหนึ่ง
ตรงที่ ให้ ไปยัง record แรกก่อน

Dim rst As Recordset
Dim strFirstSalary As String
Set rst = Me.RecordsetClone
If rst.RecordCount = "0" Then
MsgBox "No record"
Else
rst.MoveFirst
strFirstSalary = rst!Salary
DoCmd.GoToRecord , , acFirst
Do Until rst.EOF
Me.ID = strFirstSalary
DoCmd.GoToRecord , , acNext
rst.MoveNext
Loop
End If
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: kn208598

28 ธ.ค. 64 , 08:26:56
ตอบกลับ #7

kn208598

  • สมาชิกไท.Access
  • กระทู้: 17

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: การใช้ Do While Loop
« ตอบกลับ #7 เมื่อ: 28 ธ.ค. 64 , 08:26:56 »
ขอบคุณมากครับ...

 


บอร์ดเรียนรู้ Access สำหรับคนไทย