กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
396 1
URL.หัวข้อ /
URL
ตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล
เรียน อ.สุภาพ
อาจารย์พอจะมีตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล
โดยอธิบายไว้เป็นรายบรรทัดไม๊ครับ ถ้ามีหรือพอทำได้ ช่วยกรุณาให้ความรู้ด้วยครับ ขอขอบคุณมา
ณ ที่นี้ครับ (เข้าใจว่าคนอื่นหลายคนคงต้องการเช่นเดียวกับผม)
อาจารย์พอจะมีตัวอย่างและคำอธิบายเกี่ยวกับการการ Recordset และการติดต่อกับฐานข้อมูล
โดยอธิบายไว้เป็นรายบรรทัดไม๊ครับ ถ้ามีหรือพอทำได้ ช่วยกรุณาให้ความรู้ด้วยครับ ขอขอบคุณมา
ณ ที่นี้ครับ (เข้าใจว่าคนอื่นหลายคนคงต้องการเช่นเดียวกับผม)
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.1226s
การจะเปิดได้จะต้องมี 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
ลองศึกษาดูนะครับ