ความหมายของ โค๊ด การเพิ่มข้อมูลลงตาราง



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

20 ก.พ. 63 , 16:03:51
อ่าน 260 ครั้ง

thanapol.w

สวัสดีครับ อยากทราบความหมายของโค๊ด
กระผมได้ก็อป โค๊ดนี้มาใช้ แต่ยังไม่เข้าใจในส่วนที่ผมทำสีแดง

Private Sub Bnt_Add_Click()
Dim RST As DAO.Recordset บางที่ก็ใช้ database
Set RST = CurrentDb.OpenRecordset("tb_newmember")
RST.AddNew
RST("เลขบัตรปชช") = Me.T_เลขบัตรปชช
RST("คำนำหน้า") = Me.T_คำนำหน้า
RST("ชื่อ") = Me.T_ชื่อ
RST("สกุล") = Me.T_สกุล
RST.Update
Set RST = Nothing

End Sub

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

20 ก.พ. 63 , 16:40:06
ตอบกลับ #1

สันติสุข

: ความหมายของ โค๊ด การเพิ่มข้อมูลลงตาราง
« ตอบกลับ #1 เมื่อ: 20 ก.พ. 63 , 16:40:06 »
DAO.Recordset คือการอ้างถึงคลาสที่ชื่อ Recordset ในไลบรารี่ DAO (จะไม่เขียน DAO. ก็ได้ถ้า 1. เราแน่ใจว่าเรามีคลาสชื่อ Recordset และชื่อนี้ไม่ซ้ำกับคลาสอื่นในไลบรารี่ตัวอื่นในระบบเรา หรือ 2.มีซ้ำในไลบรารี่อื่นๆด้วย แต่เราอ้างถึงไลบรารี่ลำดับแรกที่พบ ซึ่งเราก็ต้องมั่นใจด้วยว่าลำดับของไลบรารี่เรียงถูกต้องแล้ว)

Dim RST As DAO.Recordset  เป็นการสร้างตัวแปรออปเจค RST ที่จะมีคุณสมบัติตามคลาส Recordset

CurrentDb.OpenRecordset("tb_newmember") ให้ชุดเรคอร์ดที่ได้จากเทเบิล tb_newmember และเทเบิลนี้อยู่ในฐานข้อมูลที่โค้ดเรากำลังทำงาน

Set RST = CurrentDb.OpenRecordset("tb_newmember") ให้ตัวแปรออปเจค RST ชี้ไปยังชุดเรคอร์ดที่ได้มาจากคำอธิบายข้างบน

RST.AddNew เป็นเมธอดที่บอกให้ระบบรู้ว่าเราต้องการให้เตรียมพื้นที่สำหรับเรคอร์ดใหม่ในชุดเรคอร์ดในตัวแปรออปเจค RST

RST.Update เป็นเมธอดที่สั่งให้ตัวแปรออปเจค RST เขียนเรคอร์ด กรณีนี้คือเรคอร์ดในพื้นที่ ที่ได้จาก RST.AddNew

Set RST = Nothing บอกให้ตัวแปรออปเจค RST เลิกชี้ไปยังออปเจคใดๆที่มันเคยชี้อยู่
« แก้ไขครั้งสุดท้าย: 20 ก.พ. 63 , 19:24:16 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w, apirak

21 ก.พ. 63 , 08:53:40
ตอบกลับ #2

thanapol.w

: ความหมายของ โค๊ด การเพิ่มข้อมูลลงตาราง
« ตอบกลับ #2 เมื่อ: 21 ก.พ. 63 , 08:53:40 »
เท่าที่เข้าใน คือ   
                      CurrentDb.OpenRecordset("tb_newmember")เลือกตาราง ฐานข้อมูล
                      recordset เป็นการตัวมาเก็บค่าแถว
                      addnew  จองพื้นที่ แรคคอร์ดใหม่
                    update  เขียนค่าที่เซ็ตใว้  ลงในแถวที่จอง

ไม่รู้ว่าถูกไหมครับ

แล้วการใช้โค๊ดนี้บันทึกข้อมูล กับการ ใช้ runsql  insert into ดีไม่ดีต่างอย่างไร  และการบันทึกแบบ อัลบาว มี วิธีอื่นอีกไหมครับ
« แก้ไขครั้งสุดท้าย: 21 ก.พ. 63 , 08:59:51 โดย thanapol.w »

 

21 ก.พ. 63 , 11:28:21
ตอบกลับ #3

สันติสุข

: ความหมายของ โค๊ด การเพิ่มข้อมูลลงตาราง
« ตอบกลับ #3 เมื่อ: 21 ก.พ. 63 , 11:28:21 »
- ที่ถามว่า เข้าใจถูกไหม ถ้าจะใช้ภาษาบ้านๆ ก็พอจะอนุโลมได้ว่าถูกครับ

- DoCmd.RunSQL สามารถอ้างคอนโทรลของฟอร์ม (เท็กซ์บ็อกซ์, คอมโบบ็อกซ์, ...) ได้โดยตรงใน SQL โดยไม่ต้องหาค่าของคอนโทรลเหล่านั้นออกมาแล้วแปลงเป็นเท็กซ์เพื่อสร้าง SQL อีกที เช่นเราสามารถเขียน DoCmd.RunSQL "insert into table1 (field1, field2) values (Forms!Form1!Text1, Forms!Form1!Combobox2)" โดยไม่จำเป็นต้องเขียนเป็น

Dim T1 As  string
Dim T2 as  string

T1 = Forms!Form1!Text1
T2 = Forms!Form1!Combobox2
DoCmd.RunSQL "insert into table1 (field1, field2) values ('" & T1 & "', '" & T2 & "')"

หรือ

DoCmd.RunSQL "insert into table1 (field1, field2) values ('" & Forms!Form1!Text1 & "', '" & Forms!Form1!Combobox2 & "')"

แต่การใช้ DoCmd object จะไม่ถูกควบคุมโดยไลบรารี่ DAO (เหมือน 2 คนทำงานให้สำเร็จเหมือนกันได้ แต่คนละเจ้านาย)
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w


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