หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 5 9 1 7 5 0

7 ธันวาคม พ.ศ.2549
109 Users On-Line.
Visitors - Page views
 8 9 4 6 8 0 0
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

โปรแกรม PowerPoint กับการเชื่อมต่อระบบฐานข้อมูล Access - การทำระบบ Login

Category »  จับฉ่ายคอมพิวเตอร์
โดย : Webmaster เมื่อ 15/8/2553   เวลา: 14:32
(อ่าน : 35390) 
ครั้งใดก็ตามทีที่ผมต้องรับหน้าที่เป็นที่ปรึกษา หรือ ประเมินผลงานโปรเจคนักศึกษา ที่เกี่ยวข้องกับการทำ CAI (Computer Assisted Instruction) หรือ การนำคอมพิวเตอร์มาช่วยทั้งในเรื่องของการเรียน และ การสอน .. ผมจะแจ้งไปยังเด็กนักศึกษาทุกกลุ่มเลยว่า หากจะทำหน้าจอ Login เข้าสู่ระบบ แต่ถ้าไม่สามารถนำข้อมูลมาใช้ประโยชน์อะไรได้เลย (มีแต่สวัสดีครับ สวัสดีค่ะ คุณ ... ) ก็ขอความกรุณาอย่าทำมา เหตุผลสั้นๆคือ ผมรำคาญสายตา 55555+ ... ที่จริงก็เพราะเด็กนักศึกษาเหล่านี้เขา (หรือเธอ) ยังไม่มีประสบการณ์ในงานสอนจริงเลย การที่จะตีความหมายในสิ่งที่จะสอน แล้วต้องเอามันมานำเสนออยู่ในรูปแบบของสื่อคอมพิวเตอร์ ก็ยิ่งยากมากมาย ... ดังนั้นต้องมองประเด็นหลักๆเสียก่อน แต่ ... ผมจะมีตัวอย่างของจริงให้เขาดูในส่วนของการติดต่อกับฐานข้อมูล ... เพื่ออะไร ... ก็เพื่อสร้างแรงจูงใจให้เด็กยังไงล่ะครับ หากเขาสามารถทำงานหลักๆได้สำเร็จ ผมก็จะเจียดเวลา (กินเหล้า 55555+) ของผม มาสอนวิธีการขั้นตอนต่างๆให้ ... หากเขาอยากจะได้ความรู้ และ ประสบการณ์ที่เพิ่มมากขึ้นน่ะ ... แต่ถ้าไม่อยากได้ก็แล้วไป เหอๆๆๆๆ ... ไม่เสียเวลา
ดาวน์โหลด
ดาวน์โหลดไฟล์โปรแกรม PowerPoint กับการเชื่อมต่อระบบฐานข้อมูล Access - การทำระบบ Login (PPT 2003)

เรื่องที่เกี่ยวข้อง
การนำโปรแกรม PowerPoint มาทำเป็น CAI
การนำโปรแกรม PowerPoint กับ CAI - ตอนการสร้างบทเรียนแบบไดนามิค
โปรแกรม PowerPoint กับ คอมพิวเตอร์ช่วยสอน ตอนการลากวางวัตถุ (Drag & Drop)
ขั้นตอนของการเปิดเสียง-หยุดเสียง ในแต่ละ Scene ให้กับโปรแกรม SwishMax
การบันทึกเสียงประกอบการผลิตสื่อการเรียนการสอน ด้วยโปรแกรม Acoustica MP3 Audio Mixer
การทำข้อสอบแบบเติมคำด้วย Swishmax
ใครว่าทำข้อสอบผ่าน Flash มันเป็นเรื่องยากส์
การทำปุ่ม หรือ เมนู แบบง่ายๆ (ถึงง่ายมาก) ด้วยโปรแกรม SwishMax (Flash Video)
สร้างเมนูในรูปแบบ Flash โดยใช้โปรแกรม SwishMax อย่างง่าย
การใช้งาน SwishMax กับการทำภาพเคลื่อนไหว ... พื้นฐานสุดๆ จนแทบไม่อยากเชื่อ
Visual Basic 6.0 กับการพัฒนาสื่อการเรียน การสอน
เรียนรู้ SwishMax (หรือ Flash) เพื่อรับส่งข้อมูลไปมากับ MS Visual Basic 6.0 ภาค 1
เรียนรู้ SwishMax (หรือ Flash) เพื่อรับส่งข้อมูลไปมากับ MS Visual Basic 6.0 ภาค 2
การใช้งาน Drag & Drop ใน VB 6 เพื่อพัฒนาสื่อการเรียน การสอน (ภาค 1)
การใช้งาน Drag & Drop ใน VB 6 เพื่อพัฒนาสื่อการเรียน การสอน (ภาค 2)
โปรแกรมสุ่มตัวเลขจำนวนเต็มแบบไม่ให้ซ้ำกันเลย - Random Number
การประยุกต์ใช้งาน MS Visual Basic 6.0 กับการพัฒนาสื่อการเรียนการสอน (คณิตศาสตร์เพื่อหนูน้อย)

เข้าเรื่อง เข้าประเด็นกันเลย ...
บทความชิ้นนี้ ผมก็ไม่ได้เหนื่อย หรือ สิ้นเปลืองเวลาไปมากมายเลย เพราะลอกมาจากงานของ Visual Basic 6 + MS Access ที่ผมเขียนไว้ก่อนหน้านี้แล้ว ในหัวข้อเรื่อง VB6 กับการทำหน้าจอ Login ระดับมืออาชีพ ภาค 1 - ปฐมบท ... ก็นำมาปรับแต่งนิดหน่อย ตามรูปแบบ และ คำสั่งที่ใช้งานของ Visual Basic for Application หรือ VBA สำหรับ PowerPoint ...
การติดต่อกับฐานข้อมูลด้วย ADO - ActiveX Data Objects

โดยการเข้าไปที่ Microsoft Visual Basic Editor หรือ กดปุ่ม Alt + F11 จากนั้นให้เลือก Tools --> References ... (ที่เหลือก็ตามภาพครับ)
การปรับแต่งคุณสมบัติของ Control แบบ Design Time (คือ การตั้งค่าคุณสมบัติต่างๆของ Control ก่อนที่จะสั่ง Run Macro)
  • โดยจะมีการตั้งค่า Properties หลักๆดังต่อไปนี้ (ไม่จำเป็นต้องไปตั้งค่าทั้งหมดเลยน่ะครับ) (ข้างล่างนี้คือตัวอย่าง Control บางตัวน่ะครับ)
      CommandButon (ปุ่มกด)
    • Name = cmdOK (ตัวย่อ cmd เพื่อสื่อถึง Command Button Control)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Caption = ป้ายบอกชื่อปุ่มว่ากดแล้วไปทำงานอะไร เช่น จบการทำงาน
      TextBox (ช่องกรอกข้อมูล)
    • Name = txtUserID (ตัวย่อ txt เพื่อสื่อถึง TextBox Control)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Text = การกำหนดค่าให้กับ TextBox
    • BorderStyle = 1 - frmBoderStyleSingle (ใส่กรอบช่องป้อนข้อมูลให้เห็นเด่นชัด)
      Label (ป้ายบอก)
    • Name = lblUserID (ตัวย่อ lbl เพื่อสื่อถึง Label Control)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Caption = ป้ายบอก หรือ คำอธิบาย เช่น กรุณาป้อนชื่อผู้ใช้งาน
  • วิธีล็อคการกดคีย์บอร์ด และ คลิ๊กเมาส์บน Slide ของ PowerPoint (ยกเว้นการกดปุ่ม Escape)
    จุดประสงค์ เพื่อไม่ต้องการให้ User สามารถเข้าถึง Slide อื่นๆได้ จนกว่าจะทำการ Login เข้าสู่ระบบได้เสร็จสมบูรณ์ หรือ
    หากต้องการ Lock การกดคีย์ได้หมดเลย สามารถดาวน์โหลด Add-In มาใช้งานได้ที่นี่

    วิธีการสร้างไฟล์ Module ใหม่ (นามสกุล BAS)
    คำว่า Module จะเป็นการรวบรวมตัวแปรต่างๆที่จำเป็นต้องใช้งานบ่อยๆ และ ต้องการให้สามารถมองเห็นตัวแปรเพื่อใช้งานได้ทั้งโปรเจค รวมไปถึงการจัดเก็บพวกโปรแกรมย่อยๆ (Sub Program หรือ Function) ที่สำคัญๆเอาไว้ใช้งาน เพื่อที่จะได้ไม่ต้องนั่งมาเขียนโค้ดขึ้นใหม่ตลอดทุกครั้งด้วย ดังนั้นการตั้งชื่อ Module เหล่านี้ เราต้องพยายามตั้งชื่อเพื่อสื่อความด้วย เช่น modDataBase.bas เป็นโมดูลที่เกี่ยวข้องกับการติดต่อกับฐานข้อมูล เป็นต้น


    จากเมนูเลือก Insert --> Module (หลังจากนั้นก็ใส่โค้ดต่างๆลงไป)


    การบันทึกไฟล์ Module เอาไว้เรียกใช้งานในภายหลัง หรือ ในโปรเจคอื่นๆต่อไปได้อีก


    การตั้งชื่อไฟล์ ก็ควรตั้งให้สื่อความหมายในงานนั้นๆด้วยน่ะครับ

    VBA สำหรับการเชื่อมต่อไฟล์ฐานข้อมูล Access โดยการบันทึกเป็น Module
    ลอกจากโค้ดของ Visual Basic 6 มาทั้งอัลบั้มเลยล่ะ ... คิกๆๆๆๆ

    
    ' กำหนดให้ต้องประกาศตัวแปร และ ชนิดตัวแปรก่อนใช้งานเสมอ
    Option Explicit
    
    ' Global เป็นการประกาศตัวแปรที่มองเห็นได้ทั้งหมดในแต่ละโปรเจค
    
    ' ตัวแปรเชื่อมต่อไฟล์ฐานข้อมูล MS Access
    Global ConnDB As New ADODB.Connection
    
    ' ใช้ RecordSet เพื่อติดต่อกับตารางข้อมูล (Table)
    Global RS As New ADODB.Recordset
    
    ' การสร้าง Query หรือ SQL Statement เพื่อติดต่อกับตารางข้อมูล
    Global Statement As String
    
    ' หากเข้าสู่ระบบได้ก็จะเก็บชื่อผู้ใช้งานเอาไว้ (หรืออื่นๆ)
    ' อาทิ เช่น วัน เวลาเข้าสู่ระบบ ตัวแปรเก็บคะแนนทำแบบทดสอบ อะไรประมาณนี้แหละครับ
    Global CompleteName As String
    
    ' ######################################################
    ' การเชื่อมต่อไฟล์ฐานข้อมูล MS Access
    ' ######################################################
    Sub OpenDataBase()
    On Error GoTo ErrorHandler
    Dim DB_File As String
        ' หาตำแหน่ง Path ปัจจุบันของไฟล์ PowerPoint
        ' เช่น C:\CAI\PowerPointDB
        DB_File = Application.ActivePresentation.Path
        If Right$(DB_File, 1) <> "\" Then DB_File = DB_File & "\"
    
        ' แล้วตามด้วยชื่อไฟล์ฐานข้อมูล MS Access
        ' เช่น C:\CAI\PowerPointDB\UserLog.MDB
        DB_File = DB_File & "UserLog.MDB"
    
        ' เชื่อมต่อไฟล์ฐานข้อมูล MS Access
        Set ConnDB = New ADODB.Connection
        ConnDB.ConnectionString = _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & DB_File & ";" & _
            "Persist Security Info=False"
        ConnDB.Open
        Exit Sub
        
    ErrorHandler:
        ' การดัก Error ที่อาจจะเกิดขึ้นในการเชื่อมต่อไฟล์ข้อมูล
        MsgBox "Error : " & Err.Number & " " & Err.Description
        End
    End Sub
    
    ' ######################################################
    ' ปิดการเชื่อมต่อไฟล์ฐานข้อมูล MS Access
    ' ######################################################
    Sub CloseDataBase()
        ' ตรวจสอบว่ามีการเชื่อมโยง - Connect ข้อมูลหรือไม่
        If ConnDB.State = adStateOpen Then
            ConnDB.Close
            Set ConnDB = Nothing
        End If
    End Sub
    

    ลำดับขั้นตอนการทำงาน

    VBA สำหรับ Slide1 ซึ่งอาจจะเป็นการอธิบายการเข้าใช้งานให้กับ Users ด้วย
    
    ' กำหนดให้ต้องประกาศตัวแปร และ ชนิดตัวแปรก่อนใช้งานเสมอ
    Option Explicit
    
    ' ######################################################
    ' เข้าสู่หน้าจอ Slide ในการป้อนข้อมูลการเข้าสู่ระบบ
    ' ######################################################
    Private Sub cmdOpen_Click()
        
        ' เปิดการเชื่อมต่อกับไฟล์ฐานข้อมูล MS Access
        Call OpenDataBase
        
        ' เคลียร์ข้อมูลเดิม
        Slide2.txtUserID.Text = ""
        Slide2.txtPassword.Text = ""
        
        ' เรียกหน้า Slide ของการ Login ขึ้นมาแสดงผล
        ActivePresentation.SlideShowWindow.View.GotoSlide (2)
           
    End Sub
    
    ' ######################################################
    ' จบการทำงาน ปิด PowerPoint
    ' ######################################################
    Private Sub cmdExit_Click()
        ' อ้างอิงชื่อไฟล์ PowerPoint
        With Application.Presentations("PowerPoint-Login.ppt")
            ' สั่งบันทึก (Save) ก่อนออก
            .Saved = True
            .Close
        End With
    End Sub
    

    ลำดับขั้นตอนการทำงาน
    หน้าจอของการออกแบบ หรือ Design Time

    ลำดับขั้นตอนการทำงาน
    ตัวอย่าง UserID/Password ... admin/admin หรือ student/student

    ลำดับขั้นตอนการทำงาน
    เมื่อสามารถ Login เข้าสู่ระบบเรียบร้อย ก็จะสามารถผ่านเข้าไปยัง Slide ต่อไปได้

    VBA สำหรับ Slide2 ที่อยู่ในโปรแกรม PowerPoint
    
    Option Explicit
    
    ' ######################################################
    ' เริ่มต้นกระบวนการตรวจสอบรายชื่อผู้ใช้ และ รหัสผ่าน
    ' โดยจะเริ่มการค้นหารายชื่อ User เข้ามาก่อน แล้วค่อยตรวจสอบรหัสผ่านทีหลัง
    ' เพราะบางครั้งอาจจะมีการเข้ารหัส (Encrypt) รหัสผ่านเอาไว้อีกชั้นหนึ่ง
    ' ######################################################
    Private Sub cmdOK_Click()
    
    ' ตัวแปรเก็บค่ารหัสผ่านจากตารางข้อมูล
    Dim strPass As String
    
        ' ตรวจสอบค่าว่างหรือไม่ ... หากใช่ให้กลับไปป้อนชื่อผู้ใช้ หรือ รหัสผ่านใหม่
        If Trim(txtUserID.Text) = "" Or Len(Trim(txtUserID.Text)) = 0 Then
            MsgBox "กรุณาป้อนชื่อผู้ใช้ให้เรียบร้อยก่อนด้วย.", vbOKOnly + vbExclamation, "รายงานสถานะ"
            ' ออกจากโปรแกรมย่อยไปเลย
            Exit Sub
        ElseIf Trim(txtPassword.Text) = "" Or Len(Trim(txtPassword.Text)) = 0 Then
            MsgBox "กรุณาป้อนรหัสผ่านให้เรียบร้อยก่อนด้วย.", vbOKOnly + vbExclamation, "รายงานสถานะ"
            ' ออกจากโปรแกรมย่อยไปเลย
            Exit Sub
        End If
        
        ' เริ่มตรวจสอบชื่อผู้ใช้งานก่อนว่ามีในระบบหรือไม่
        ' การกำหนด Set RS = New Recordset หมายถึงการปิด RecordSet เดิมลง (กรณีเปิดค้างไว้)
        Set RS = New Recordset
        Statement = "SELECT * FROM tblUser WHERE UserID = " & "'" & Trim(txtUserID) & "'"
        RS.CursorLocation = adUseClient
        RS.Open Statement, ConnDB, adOpenForwardOnly, adLockReadOnly, adCmdText
        
        ' การใช้ RecordCount ได้ เราต้องตั้งการอ่านแบบ RS.CursorLocation = adUseClient
        If RS.RecordCount > 0 Then
            
            strPass = "" & RS("Password")
            
        ' ไม่พบข้อมูลให้กลับไปแก้ไขใหม่
        Else
            MsgBox "ชื่อผู้ใช้งานไม่ถูกต้อง กรุณาลองใหม่อีกครั้ง.", vbOKOnly + vbExclamation, "รายงานสถานะ"
            RS.Close:   Set RS = Nothing
            Exit Sub
        End If
        
        ' เมื่อชื่อผู้ใช้ถูกต้องแล้ว ก็ไปตรวจสอบรหัสผ่านในลำดับต่อไป
        ' ตรวจสอบรหัสผ่านของผู้ใช้งานก่อนว่าตรงกันกับในระบบหรือไม่ โดยปรับตัวอักขระทุกตัวให้เป็นตัวเล็ก (LCase)
        If LCase(txtPassword.Text) <> LCase(strPass) Then
            MsgBox "รหัสผ่านไม่ถูกต้อง กรุณาลองใหม่อีกครั้ง.", vbOKOnly + vbExclamation, "รายงานสถานะ"
            RS.Close:   Set RS = Nothing
            Exit Sub
        End If
            
        
        ' แจ้งการเข้าสู่ระบบ
        MsgBox "ยินดีต้อนรับคุณ " & RS("CompleteName") & " เข้าสู่ระบบ.", _
                    vbOKOnly + vbInformation, "เข้าสู่ระบบเรียบร้อย"
        
        ' การเก็บค่าตัวแปร ลักษณะนี้ คือ การเก็บข้อมูลผู้ใช้เอาไว้แสดงผลได้ทุกๆ Slide ครับ
        ' ในทางปฏิบัติจริง เราอาจจะต้องเก็บค่าอื่นๆที่จำเป็นเอาไว้ด้วย เช่น วัน เวลาที่ Login เข้ามา
        CompleteName = "" & RS("CompleteName")
        
        ' แจ้งชื่อไปที่หน้า Slide ถัดไป
        Slide3.lblWelcome.Caption = "ยินดีต้อนรับคุณ " & CompleteName & " เข้าสู่บทเรียน"
        
        ' ตัดการเชื่อมต่อตารางข้อมูล (Table) แต่ยังไม่ได้ปิดไฟล์ฐานข้อมูลน่ะครับ
        RS.Close:   Set RS = Nothing
        
        
        ' ไปหน้า Slide ต่อไป
        ActivePresentation.SlideShowWindow.View.GotoSlide (3)
        
    End Sub
    ' ######################################################
    ' จบการทำงาน ปิด PowerPoint
    ' ######################################################
    Private Sub cmdExit_Click()
        
        ' เพื่อความปลอดภัยของไฟล์ข้อมูล ต้องปิดการเชื่อมต่อฐานข้อมูลก่อนด้วย
        Call CloseDataBase
        
        ' เคลียร์ข้อมูลเดิมก่อนปิดไฟล์
        Slide2.txtUserID.Text = ""
        Slide2.txtPassword.Text = ""
        
        ' อ้างอิงชื่อไฟล์
        With Application.Presentations("PowerPoint-Login.ppt")
            ' สั่งบันทึก (Save) ก่อนออก
            .Saved = True
            .Close
        End With
    
    End Sub
    
    Conclusion:
    จะเห็นได้อย่างชัดเจนในแบบรูปธรรมไปเลยว่า หากเราใช้เจ้า PowerPoint เพื่อเชื่อมต่อกับไฟล์ฐานข้อมูลได้แล้ว ก็ย่อมที่จะสามารถนำไปใช้ประโยชนใน์ด้านอื่นๆได้อีก อาทิเช่น เก็บข้อมูลการเข้า ออกของผู้เรียนแต่ละคน เก็บคะแนนการทำแบบทดสอบ ทั้ง Pre-Test/Post-Test หรืออื่นๆอีกเยอะแยะไป เพราะข้อมูลเหล่านี้เราต้องนำไปใช้ในการประมวลผลทางสถิติต่อไป โดยอาศัยข้อมูลจากฐานแห่งความเป็นจริงยังไงล่ะครับ ... พี่น้อง
    จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
    เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
    CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
    Email: [email protected] หรือ โทร. 08-6862-6560