ตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 290   1
URL.หัวข้อ / URL
ตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล

เรียน อ.สุภาพ
อาจารย์พอจะมีตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล
โดยอธิบายไว้เป็นรายบรรทัดไม๊ครับ ถ้ามีหรือพอทำได้ ช่วยกรุณาให้ความรู้ด้วยครับ ขอขอบคุณมา
ณ ที่นี้ครับ (เข้าใจว่าคนอื่นหลายคนคงต้องการเช่นเดียวกับผม)

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

1 @R03884
การเปิด RecordSet ก็คือ การเปิด Table หรือ Query แต่เปิดแบบไม่เห็นข้อมูลครับ

การจะเปิดได้จะต้องมี 2 ตัวแปรคือ

dbs โดยกำหนดให้อ้างอิงถึง ฐานข้อมูลปัจจุบัน หรือฐานข้อมูลอื่นๆ ก็ได้

rst ให้เป็นตัวรับข้อมูลที่จะส่งออกมา

ประกาศได้ดังนี้

Dim dbs As Database, rst As RecordSet
Set dbs = CurrentDb
' ถ้าอ้างอิงถึงฐานข้อมูลอื่นให้ใช้
' Set dbs = OpenDatabase("c:\db1.mdb")

Set rst = dbs.OpenRecordset("ชื่อตาราง หรือชื่อ Query หรือ SQL Statement ก็ได้")

เช่น

Set rst = dbs.OpenRecordset("Table1")

ต่อไปคือการตรวจสอบดูว่า มีข้อมูลใน RecordSet ที่เปิดหรือไม่
นิยมใช้ EOF (End Of File)

If rst.EOF Then

ซึ่งอาจใช้ Not ช่วย จะได้

If Not rst.EOF Then
...
End If

การแสดงข้อมูลใน Recordset ก็ใช้ MoveNext, MovePrevious, MoveLast, ... ช่วย เพื่อให้มีการแสดงข้อมูลตั้งแต่ข้อมูลแรกจนถึงข้อมูลสุดท้าย

เราสามารถใช้ For Next หรือ Do While Loop ช่วยในการวิ่งตั้งแต่ข้อมูลแรก ไปจนถึงข้อมูลสุดท้าย

ตัวอย่างของการใช้ Do While Loop

Do While เงื่อนไขที่เป็นจริง
' ทำงานที่ต้องการ จนกว่าจะได้เงื่อนไขที่เป็นเท็จ
Loop

การอ้างอิงข้อมูลในฟีลด์ใด ก็ให้ใช้ชื่อฟีลด์นั้นได้เลย เช่น

rst("Field1")

ถ้าต้องการให้แสดงผลให้เห็นด้วย จะนิยมแสดงผลใน Debug window (โดยกด Ctrl + G) หรือจะใช้ Message Box เข้าช่วยก็ได้ เช่น

Debug.Print rst("Field1")

หรือ

MsgBox rst("Field1")

เมื่อสิ้นสุดการเปิด Recordset ก็ให้ปิด หรือคืนความจำให้กับเครื่องคอมฯ
โดยใช้โค้ดต่อไปนี้

rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing

ลองรวมทุกอย่างเข้าด้วยกันจะได้

Private Sub Test()
Dim dbs As Database , rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Table1")
If Not rst.EOF Then
Do While Not rst.EOF
Debug.Print rst("Field1")
rst.MoveNext
Loop
End If
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
End Sub

ลองศึกษาดูนะครับ



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