ต้องการ Update ข้อมูลในฟิวส์ของฟอร์มย่อยตามฟิวส์ฟอร์มหลัก



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

15 ก.พ. 64 , 19:44:55
อ่าน 160 ครั้ง

Witthaya Soree

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

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

้รบกวนขอคำแนะนำการเขียนให้ ข้อมูลในฟิวส์ของฟอร์มย่อยเป็นไปตามฟิวส์ฟอร์มหลัก เมื่อมีการเปลี่ยนแปลงข้อความ

 

16 ก.พ. 64 , 09:50:44
ตอบกลับ #1

chai

1.ฟอร์มย่อยสร้างจากคิวรี่ ที่ใส่เงื่อนไข type_job =forms!ชื่อฟอร์มหลัก!ชื่อTextฟิวด์ type_job
2.ฟอร์มหลัก ที่ช่องใส่ข้อมูลTextฟิวด์ type_job เขียน event after update ให้ฟอร์มย่อย requery
ยังมีอีกหลายวิธี รอท่านอื่นตอบนะครับ

 
โพสต์นี้ได้รับคำขอบคุณจาก: Witthaya Soree

16 ก.พ. 64 , 12:59:34
ตอบกลับ #2

Witthaya Soree

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

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

1.ฟอร์มย่อยสร้างจากคิวรี่ ที่ใส่เงื่อนไข type_job =forms!ชื่อฟอร์มหลัก!ชื่อTextฟิวด์ type_job
2.ฟอร์มหลัก ที่ช่องใส่ข้อมูลTextฟิวด์ type_job เขียน event after update ให้ฟอร์มย่อย requery
ยังมีอีกหลายวิธี รอท่านอื่นตอบนะครับ

ถ้าต้องการให้ Update ฟิวนั้น ทุกระเบียนที่มีต้องทำยังไงครับ ลองทำแล้วมันเปลี่ยนให้ทีละระเบียนครับ

 

16 ก.พ. 64 , 13:10:07
ตอบกลับ #3

PNR

ถ้าตารางของซัพฟอร์ม ชื่อ table2
ปรับปรุงทุกระเบียนที่มีในตารางโค้ดจะเป็น

Private Sub txtTypeJob_AfterUpdate()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Table2")
   rs.MoveFirst
   Do Until rs.EOF
   rs.Edit
   rs![Type_Job] = Me.txtTypeJob
   rs.Update
   rs.MoveNext
 Loop
rs.Close
Set rs = Nothing
Forms![frmMain].[SubFrm].Requery
End Sub


ถ้ามีการปรับปรุงข้อมูล โดยแยกตาม ID ก็ใส่แบบนี้
Private Sub txtTypeJob_AfterUpdate()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Table2 WHERE Table2.ID = " & [Forms]![frmMain]![txtID] & "")
   rs.MoveFirst
   Do Until rs.EOF
   rs.Edit
   rs![Type_Job] = Me.txtTypeJob
   rs.Update
   rs.MoveNext
 Loop
rs.Close
Set rs = Nothing
Forms![frmMain].[SubFrm].Requery
End Sub
« แก้ไขครั้งสุดท้าย: 16 ก.พ. 64 , 13:27:43 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: Witthaya Soree

16 ก.พ. 64 , 16:24:29
ตอบกลับ #4

Witthaya Soree

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

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

คำสั่งชุดแรกสามารถทำได้ครับ
คำสั่งชุดที่สอง ที่ให้จับจาก ID ติดขั้นตอน SELECT  ไม่ทราบว่าคำสั่งผมผิดตรงไหนไหมครับ



Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT*FROM Table2 WHERE Table2.ID = " & Forms![Form1]![ID] & "")
   rs.MoveFirst
   Do Until rs.EOF
   rs.Edit
   rs![Type_Job] = Me.Type_Job
   rs.Update
   rs.MoveNext
 Loop
rs.Close
Set rs = Nothing
Forms![Form1].[ฟอร์มย่อย Table2].Requery
End Sub



 

16 ก.พ. 64 , 20:16:59
ตอบกลับ #5

PNR

 ID datatype เป็นอะไรครับ
ถ้าเป็นข้อความเพิ่ม ' ด้วย

เช่น
 rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT*FROM Table2 WHERE Table2.ID = '" & Forms![Form1]![ID] & "'")
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: Witthaya Soree

17 ก.พ. 64 , 08:00:39
ตอบกลับ #6

PNR

หรือจะใช้ คิวรี่ Update แบบนี้ก็ได้เหมือนกัน

Dim SQL As String
SQL = "UPDATE Table2 SET Table2.Type_Job = [forms]![FORM1]![Type_Job] " _
& "WHERE (((Table2.ID)=[Forms]![FORM1]![ID]));"
DoCmd.SetWarnings False
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
Forms![FORM1].[ฟอร์มย่อย Table2].Requery
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: Witthaya Soree

18 ก.พ. 64 , 09:39:15
ตอบกลับ #7

Witthaya Soree

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

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

ID datatype เป็นอะไรครับ
ถ้าเป็นข้อความเพิ่ม ' ด้วย

เช่น
 rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT*FROM Table2 WHERE Table2.ID = '" & Forms![Form1]![ID] & "'")

ผมลองใช้แบบนี้ ทำได้แล้วครับ

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

 


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