การเปิดฟอร์ม และไปยังเรคคอร์ดที่กำหนด ด้วย VBA ใน MS Access 2010
การให้ผู้ใช้งานฐานข้อมูล เพิ่มข้อมูลที่ไม่ซ้ำกันในตาราง เช่น เลขที่รหัสวิชา เป็นต้น เป็นเรื่องค่อนข้างลำบาก เนื่องจากผู้ใช้ต้องเดาสุ่มว่า มีข้อมูลแล้วหรือยังในตาราง วิธีแก้ไขอย่างหนึ่ง คือ นำข้อมูลที่มีอยู่แล้ว มาแสดงให้เห็น เพื่อกำหนดไม่ให้ซ้ำกับของเดิม
ตัวอย่าง
หน้าจอให้กรอกรหัสหลักสูตร
วิธีการ
ตัวอย่าง
หน้าจอให้กรอกรหัสหลักสูตร
เมื่อกรอกรหัส และคลิกปุ่ม ตกลง โปรแกรมจะไปตรวจสอบข้อมูลในตาราง เมื่อพบว่ามีข้อมูลซ้ำ จะแสดงข้อความให้ทราบ
ถ้าต้องการตรวจสอบข้อมูลที่มีอยู่แล้ว จะนำข้อมูลที่มีในตารางมาแสดงในฟอร์ม และไปยังตำแหน่งหมายเลขที่ซ้ำ ตามที่ระบุ
- สร้างตาราง ชื่อ tblCourses
- สร้างฟอร์มเพิ่มหลักสูตรใหม่ ชื่อ frmCourses เป็น Unbound Form
- สร้างฟอร์มแสดงข้อมูลจากตาราง tblCourse ชื่อ frmShowAllCourses
- เมื่อคลิกปุ่มตกลง ให้ค้นหาข้อมูล รหัสวิชา ที่มีในตาราง ถ้าพบว่าซ้ำกัน ให้เปิดหน้าจอแสดงข้อความว่า จะขอดูข้อมูลที่มีอยู่แล้วหรือไม่ ถ้าต้องการ ให้เปิดฟอร์ม frmShowAllCourses โดยกำหนดให้ไปที่หมายเลขรหัสที่ผู้ใช้พิมพ์
- ที่ปุ่ม ตกลง เขียนโค้ด ดังนี้
Private Sub cmdSave_Click()
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select * from tblCourses WHERE (Course_id)='" & _
Me.txtCourseID.Value & "'")
numOfRecords = rst.RecordCount
If numOfRecords > 0 Then
If (MsgBox("ไม่สามารถใช้รหัส " & Me.txtCourseID.Value & " เนื่องจากมีในฐานข้อมูลแล้ว" & vbCrLf & vbCrLf & _
" ท่านต้องการดูรหัสทั้งหมด ในฐานข้อมูลหรือไม่" & vbCrLf & _
"Yes=ต้องการ, No=ไม่ต้องการ", vbYesNo, "trainingBase") = vbYes) Then
DoCmd.OpenForm "frmShowAllCourses"
Forms!frmShowAllcourses.Recordset.FindFirst "course_id = '" & Me.txtCourseID.Value & "'"
Exit Sub
Else
Me.txtCourseID.SetFocus
Exit Sub
End If
End If
Set rst = CurrentDb.OpenRecordset("tblCourses")
rst.AddNew
rst!course_id = Me.txtCourseID
rst.Update
Call MsgBox("เก็บข้อมูลเรียบร้อยแล้ว")
Me.txtCourseID = ""
Set rst = Nothing
End Sub - จากโค้ด จะเห็นว่า การสั่งให้ไปยัง Record ที่ต้องการในฟอร์ม ใช้คำสั่ง FindFirst โดยระบุข้อมูล ฟิล์ดที่ต้องการ
- ดาวน์โหลดไฟล์ เพื่อดูรายละเอียด ได้ คลิกที่นี่
ความคิดเห็น
แสดงความคิดเห็น