วันอาทิตย์ที่ 31 สิงหาคม พ.ศ. 2557

ซ่อมไฟล์ AVI

วันนี้ไปเจอไฟล์ AVI ที่เป็นไฟล์วิดีโอ เปิดด้วย VLC ไม่ได้ บอกว่า ไฟล์เสีย  บอกว่า Broken or missing AVI Index
การซ่อมไฟล์ AVI มีโปรแกรมฟรี หลายโปรแกรม เช่น DivFix++, BandiCam/BandiFix,  Remo Repair AVI และ Digital Video Repair เป็นต้น บางโปรแกรมเป็น Freeware และบางโปรแกรมเป็น Shareware

Freeware หลายตัว มี Adware หรือ Malware แถมมาให้ด้วย ดังนั้นเวลาติดตั้ง ต้องค่อย ๆ ทำ ดูให้ดีก่อนคลิก OK หรือ Next บางโปรแกรมร้ายมาก ถ้าไม่ติดตั้ง Adware ก็จะไม่สามารถทำงานได้

Shareware ดูจะดีกว่า แต่ต้องดูว่า สิ่งที่เราต้องการ สามารถทำได้หรือไม่

ไฟล์ AVI ที่มีปัญหา สามารถใช้โปรแกรม VideoLAN หรือ VLC แก้ไขได้
ดาวน์โหลดโปรแกรม VideoLAN ได้ที่ http://www.videolan.org/vlc/

โปรแกรม VLC เป็นโปรแกรมเล่นไฟล์วิดีโอได้หลายชนิด เป็น Freeware ที่ได้รับความนิยมสูง และปลอดภัย ไม่มี Adware หรือ Malware

โดยปกติ VLC จะแจ้งให้ทราบว่าไฟล์ AVI เสีย ไม่สามารถเล่นได้ แต่จะถามว่า จะซ่อมให้เอาหรือไม่ ถ้าให้ซ่อม ก็จะซ่อมให้ ตามรูปข้างบน แต่จะไม่บันทึกไฟล์ เมื่อจะเล่นใหม่ จะถามอย่างนี้ทุกครั้ง และต้องเสียเวลาให้ทำการซ่อมไฟล์

เราสามารถตั้งค่าให้โปรแกรม VLC แก้ไขไฟล์ที่เสียได้โดยอัตโนมัติ ดังนี้

วิธีการตั้งค่า

  1. เปิดไฟล์ VLC
  2. ไปที่ เครื่องมือ > ปรับแต่ง  (Tools > Preferences)
  3. คลิกปุ่ม ส่วนนำเข้า / ตัวอ่าน-ลงรหัส (Input & Codecs)
  4. เลือก แก้โดยอัตโนมัติ (Always fix)
  5. กดปุ่ม บันทึก (Save)
  6. เมื่อเปิดเล่นไฟล์ AVI ที่มี index เสีย โปรแกรมจะเล่นได้ตามปกติ


นอกจากใช้ VLC ซ่อมไฟล์แล้ว ยังมีอีกโปรแกรมที่ซ่อมไฟล์ AVI ได้ดี คือ BandiFix ซึ่งมาพร้อมกับ BandiCam รุ่น Shareware ซึ่งเป็นโปรแกรมจับหน้าจอ แต่มีไฟล์ bdfix.exe ซึ่งสามารถใช้ซ่อมไฟล์ AVI ที่เสียได้ สามารถดาวน์โหลดได้ที่ http://www.bandicam.com/downloads/

เมื่อดาวน์โหลดมาแล้ว ให้ติดตั้ง และเข้าไปดูในห้องที่ติดตั้ง จะเห็นไฟล์ bdfix.exe
วิธีการใช้งาน

  1. ดับเบิ้ลคลิกไฟล์ bdfix.exe จะเปิดหน้าจอการซ่อมไฟล์
  2. คลิกปุ่ม 3 จุด เพื่อเลือกไฟล์ โปรแกรมจะวิเคราะห์และรายงานผล
  3. คลิกปุ่ม Yes โปรแกรมจะดำเนินการซ่อม Index ให้เรียบร้อย
  4. โปรแกรมจะสร้างไฟล์ที่ซ่อมแซมแล้ว โดยใช้ชื่อเดิม และมีคำว่า fix ต่อท้ายชื่อไฟล์ และเก็บไว้ที่เดียวกัน
  5. เสร็จแล้วทดสอบโดยการกด ปุ่ม Play จะเห็นว่า AVI สามารถเล่นได้ตามปกติ







วันศุกร์ที่ 22 สิงหาคม พ.ศ. 2557

การทดสอบ t-test แบบ Dependent ด้วย Excel 2010 และ การแปรผล

การทดสอบ t-test แบบ Dependent 

การทดสอบ t-test แบบ Dependent เป็นการทดสอบข้อมูลของกลุ่มตัวอย่างกลุ่มเดียวกัน เช่น เปรียบเทียบผลการทดสอบก่อนเรียนและผลการสอบหลังเรียนของผู้เรียนกลุ่มเดียวกัน ว่าแตกต่างกันอย่างมีนัยสำคัญทางสถิติหรือไม่ เป็นต้น บางทีก็เรียกว่า เป็นการทดสอบ t-test แบบจับคู่ หรือ Paired t-test

ตัวอย่างการวิเคราะห์ค่า t-test ด้วย Excel


โปรแกรม Microsoft Excel นอกจากมีสูตรที่เป็น Worksheet functions แล้ว ยังมีเครื่องมือ Add-Ins สำหรับการทดสอบทางสถิติ ซึ่งเรียกว่า Analysis ToolPak ที่ใช้สำหรับการวิเคราะห์ค่าทางสถิติโดยเฉพาะอีกด้วย

เครื่องมือนี้ มีมาให้พร้อมใช้งาน แต่ยังไม่ได้ติดตั้ง ต้องติดตั้งก่อน จึงจะใช้งานได้ สำหรับ Excel 2010 มีวิธีการติดตั้ง ดังนี้
  1. ไปที่เมนูบนแถบริบบิ้น แฟ้ม > ตัวเลือก > Add In
  2. เลือก จัดการตัวเลือกของ Add In และคลิก ไป
  3. จะเกิดหน้าจอ คลิกเลือก Analysis ToolPak
  4. ตรวจสอบที่เมนูบนริบบิ้น ที่เมน ข้อมูล จะเห็นมี Data Analysis เกิดขึ้น

การวิเคราะห์ค่า T-test ด้วย Excel

ก่อนจะทำการทดสอบ ต้องมีการตั้งสมมุติฐานก่อน ตั้งสมมุติฐานแบบเป็นกลาง เรียกว่าเป็น สมมุติฐานหลัก (Null Hypothesis: H0) ในที่นี้คือ คะแนนก่อนเรียนและหลังเรียนไม่มีความแตกต่างกัน และสมมุติฐานเลือก หรือสมมุติฐานรอง  (Alternative Hypothesis: Ha) ตั้งว่า คะแนนหลังเรียนสูงกว่าก่อนเรียน  ซึ่งเป็นการตั้งแบบมีทิศทาง ทางเดียว เป็นลักษณะ one-tailed-test เนื่องจากคาดเดาว่า หลังจากมีการเรียนการสอน การทำแบบฝึกหัด มีSheetแจกให้อ่านเพิ่ม มีการบ้าน แถมมีการสอบย่อยอีก เรียกว่าสอนกันอย่างดีแล้ว คะแนนหลังเรียนน่าจะสูงกว่าก่อนเรียน

                   H0: คะแนนก่อนเรียนและหลังเรียนไม่มีความแตกต่างกัน
                   Ha: คะแนนหลังเรียนสูงกว่าคะแนนก่อนเรียน
หมายเหตุ:
การกำหนดสมมุติฐานว่า จะเป็น One-tailed test หรือ Two-tail test ขึ้นอยู่กับการศึกษาข้อมูลพื้นฐานที่เกี่ยวกับเรื่องนั้น ๆ ตลอดจนเจตคติของผู้วิจัย ถ้าไม่แน่ใจว่า ผลจะออกมาเป็นอย่างไร อาจจะเป็นไปได้ทั้งทางมาก หรือ ทางน้อย เป็นต้น ในลักษณะนี้ ควรกำหนดไว้เป็น Two-tail test
แต่ถ้าค่อนข้างแน่ใจ จากการศึกษามาแล้ว ว่า ผลที่ได้ อาจจะมากกว่า หรือน้อยกว่าอย่างแน่นอน ก็สามารถกำหนดเป็นลักษณะ One-tail test ได้

การวิเคราะห์
  1. กรอกข้อมูล ก่อนเรียนและหลังเรียน ดังภาพ
  2. ไปที่เมนู ข้อมูล > Data Analysis
  3. เลือก t-Test:Paired Sample for Mean
    สำหรับอีก 2 ตัวเลือกของ t-Test สำหรับใช้กับข้อมูลที่สุ่มเอามาจากตัวอย่างคนละกลุ่มกัน
  4. กำหนดชุดข้อมูล หลังเรียนและก่อนเรียน (เลือกหลังเรียนเป็นข้อมูลชุดที่ 1 เพื่อจะได้ค่าที่ไม่ติดลบ) และอื่น ๆ
    Variable 1 Range - ช่วงของข้อมูล ชุดที่ 1 
    Variable 2 Range - ช่วงของข้อมูล ชุดที่ 2
    Hypothesized Mean Difference - ค่าความแตกต่างของ สมมุติฐานของ Mean ของกลุ่มตัวอย่าง โดยปกติ เรามักจะกำหนด ให้เป็น 0 คือไม่แตกต่างกัน
    Labels - ถ้าในช่วงที่กำหนด มีชื่อหัวแถว ให้คลิกเครื่องหมายถูก เพื่อบอกว่ามีชื่อหัวแถว
    Alpha - ค่าระดับความเชื่อมั่น ปกติคือ 0.05 หรือ 0.01   
    Output Range - ตำแหน่งที่ต้องการให้แสดงผลการวิเคราะห์ข้อมูล
  5. กดปุ่ม OK จะได้ผลลัพธ์ ดังตัวอย่าง

การแปรผล

การยอมรับหรือไม่ยอมรับ สมมุติฐานหลัก ขึ้นอยู่กับระดับความเชื่อมั่นที่เรากำหนด นั่นคือ เราอนุญาตให้มีข้อผิดพลาด (Type I หรือ Type II Error) ได้มากน้อยเพียงใด

ข้อผิดพลาดดังกล่าว มี 2 ลักษณะ คือ Type I Error และ Type II Error

Type I Error: ได้แก่ การไม่ยอมรับสมมุติฐานหลัก ทั้ง ๆ ที่ข้อเท็จจริงเป็นไปตามสมมุติฐานหลัก และไปยอมรับสมมติฐานรองแทน ตัวอย่างเช่น การกดกริ่งสัญญานเตือนภัย ทั้ง ๆ ที่ไม่มีอะไรเกิดขึ้น (แต่สำคัญผิดคิดว่ามีภัย จึงกดกริ่ง) ผลที่เกิดคือ อาจจะทำให้ผู้คนแตกตื่นตกใจบ้าง แต่ไม่มีผลอย่างอื่น
Type II Error: ได้แก่การยอมรับสมมุติฐานหลัก ทั้ง ๆ ที่ข้อเท็จจริงไม่ได้เป็นไปตามนั้น ความผิดชนิดนี้ เป็นความผิดร้ายแรง เช่น ได้ยินเสียงผิดปกติ แต่คิดว่าไม่มีอะไร ทั้ง ๆ ที่ภัยกำลังใกล้จะมาถึง จึงไม่กดสัญญานเตือนภัย ทำให้ไม่มีการเตรียมพร้อม จึงส่งผลให้เกิดความเสียหายหนัก

การแปรผล
  1. ถ้าค่า t-Stat ที่ได้ น้อยกว่า ค่า t-Critical แสดงว่า เราไม่อาจปฏิเสธ Null Hypothesis
  2. ถ้าค่า t-Stat ที่ได้ มากกว่าหรือเท่ากับ ค่า t-Critical แสดงว่า เราปฏิเสธ Null Hypothesis และ ยอมรับ Alternative Hypothesis
  3. ถ้าค่า P มากกว่าค่าระดับความเชื่อมั่น ตามที่กำหนด แสดงว่า เราไม่อาจปฏิเสธ Null Hypothesis
  4. ถ้าค่า P น้อยกว่าหรือเท่ากับค่าระดับความเชื่อมั่น ตามที่กำหนด แสดงว่า เราปฏิเสธ Null Hypothesis และยอมรับ Alternative Hypothesis
หมายเหตู:
เราเปรียบเทียบค่า t-Stat กับ ค่า t-Critical หรือค่า t ที่ได้จากการเปิดตาราง T (ซึ่ง Excel บอกเราให้ทราบด้วยแล้ว ไม่จำเป็นต้องไปเปิดตารางตรวจสอบค่า T)
เราเปรียบเทียบค่า P กับค่า ระดับความเชื่อมั่น ที่กำหนด

จากตัวอย่าง จะเห็นว่า ค่า t-Stat (2.03) มากกว่าค่า t-Critical One-tail (1.76) จึงเป็นการปฏิเสธสมมุติฐานหลัก และยอมรับสมมุติฐานรอง นั่นคือ คะแนนหลังเรียนสูงกว่าคะแนนก่อนเรียน

ถ้าจะพิจารณาจากค่า P พบว่า ค่า P(T<=t) one-tail มีค่า 0.03 ซึ่งน้อยกว่า ค่าระดับความเชื่อมั่นที่ตั้งไว้คือ 0.05 หรือพูดได้ว่า p < 0.05 ดังนั้น จึงปฏิเสธสมมุติฐานหลัก และยอมรับสมมุติฐานรอง

อ้างอิง

http://www.gla.ac.uk/sums/users/jdbmcdonald/PrePost_TTest/pandt1.html
http://math.mercyhurst.edu/~griff/courses/m109/Lectures/sect7.2.pdf
http://www.youtube.com/watch?v=VFMcGdWp0MQ


วันพุธที่ 20 สิงหาคม พ.ศ. 2557

การตรวจสอบตัวเลข ด้วย vba

การตรวจสอบว่า ข้อความที่พิมพ์เข้ามาเป็นตัวเลขหรือไม่ เราใช้ฟังก์ชัน isNumeric() เพื่อตรวจสอบ แต่ฟังก์ชันนี้ ยังอาจจะไม่ได้ตรงตามที่เราต้องการมากนัก เนื่องจาก ยังอนุญาตให้มีเครื่องหมาย ต่าง ๆ เช่นคอมม่า เครื่องหมาย + เป็นต้น และที่สำคัญคือ ถ้ามีการใช้ตัวอักษร d หรือ e ผสมกับตัวเลข ก็จะถือว่า เป็นตัวเลขด้วย เช่น 10E14 ฟังก์ชัน isNumeric() จะถือว่า เป็นตัวเลข เพราะ จริง ๆ ก็คือตัวเลขชนิดหนึ่งเหมือนกัน เป็น Scientific Notation

แต่จริง ๆ เราต้องการให้ตรวจสอบว่า เป็นตัวเลข ตั้งแต่ 0 ถึง 9 เท่านั้น ไม่ต้องการให้มีเครื่องหมายใด ๆ หรือ ตัวอักษรใด ๆ ทั้งสิ้น  เช่น ต้องการตรวจสอบว่า พิมพ์รหัสไปรษณีย์ โดยไม่มีตัวอักษรใด ๆ ปนเข้ามา หรือไม่ เป็นต้น

ในกรณีอย่างนี้ เราต้องเขียนฟังก์ชันให้ตรวจสอบเอง โดยการเปรียบเทียบจากตัวอักษรที่กำหนด ฟังก์ชันที่ใช้ในการเปรียบเทียบ คือ instr() ดังต่อไปนี้

Function IsAllNumber(str As String) As Boolean

Dim allowedChar As String

    allowedChar = "1234567890"
    For i = 1 To Len(str)
        If InStr(allowedChar, Mid(str, i, 1)) = 0 Then
            IsAllNumber = False
            Exit Function
        End If
    Next i
IsAllNumber = True

End Function

ตัวอย่างการเรียกใช้งาน

Dim isNum As Boolean
isNum = IsAllNumber(Me.txtProvinceCode)

If (isNum = False) Then
    MsgBox "รหัสไปรษณีย์ไม่ถูกต้อง" & vbcrlf  & "ใช้เฉพาะตัวเลข ต้องไม่มีตัวอักษร"
    Cancel = True
    Exit Sub
End If


อ้างอิง
http://www.vbforums.com/showthread.php?245774-yet-another-isNumeric-question
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21713173.html

วันจันทร์ที่ 18 สิงหาคม พ.ศ. 2557

การแสดงค่าเริ่มต้น ของ Combo Box (MS Access)

Combo Box ใน MS Access มีประโยชน์สำหรับเลือกรายการ แล้วนำไปค้นหาข้อมูล เช่น อาจจะนำมาแสดงใน subForm ดังตัวอย่างข้างล่าง


ในกรณีข้างต้น เป็นการกำหนด Query ใน Row Source ของ Combo Box ให้เลือกข้อมูลจากตาราง โดยมีการรวมฟิลด์ในตาราง เสียใหม่ โดยใช้ Query ดังนี้

SELECT tblTeachers.tchr_idCardNum, [title] & [fname] & " " & [lname] AS name, tblTeachers.fname FROM tblTeachers ORDER BY tblTeachers.fname;

ปัญหาอย่างหนึ่ง ที่เกิดขึ้นก็คือ เมื่อเปิดฟอร์มมาครั้งแรก จะไม่มีข้อมูลใน Combo Box และใน Subform ก็จะไม่มีข้อมูลใด ๆ

ดังนั้น จึงต้องไปกำหนดค่า Default Value เสียก่อน แต่จะไม่สามารถพิมพ์ข้อความเข้าไปตรง ๆ ได้ เนื่องจากเป็นการใช้ Query ไม่ใช่เป็นการพิมพ์ค่าเข้าไปเองตรง ๆ ดังนั้นจึงต้องอ้างอิงค่าจากตัวของมันเอง โดยใช้ itemData ซึ่งเป็น Property ของ Combo Box ทั้งนี้ต้องระบุตำแหน่งแถวรายการข้อมูลที่้ต้องการให้แสดง (ตำแหน่งแถว เริ่มต้นที่ 0) เช่น
             =[cboTeachers].[ItemData](0)


เมื่อเปิดฟอร์มครั้งแรก ฟอร์มจะไม่ว่างเปล่า แต่จะนำข้อมูลมาแสดงให้เห็น ดังตัวอย่าง



วันพฤหัสบดีที่ 14 สิงหาคม พ.ศ. 2557

php session กับ domain name ที่มี www และ ไม่มี www

ปวดหัวอยู่หลายวัน กับเรื่อง Session ของ PHP

เรื่องก็มีอยู่ว่า ใช้ Session ของ PHP ในหน้ารายวิชา เพื่อจำเลขประจำตัวของผู้ใช้ เพื่อนำมาใช้หาข้อมูลหรือเก็บข้อมูลของผู้ใช้ ในหน้าอื่น ๆ เช่น เก็บคะแนนในหน้า Pretest, Posttest, และการแสดงผลการเรียน เป็นต้น

ปัญหาคือ ใช้กับ Chrome แล้ว ปรากฏว่า Session หาย เมื่อคลิกกลับไปหน้าเมนูหลัก คือ พออยู่หน้ารายวิชา มี Session แจ้งบอกว่า ใคร กำลัง login อยู่ แต่พอคลิกกลับไปหน้าเมนูหลัก และคลิกกลับมาที่หน้าวิชาเดิม ปรากฏว่า ไม่เห็นมีชื่อคนที่ login ทั้ง ๆ ที่ยังไม่ได้ logout

ใช้กับ Browser อื่น ๆ เช่น IE กลับไม่มีปัญหาอะไร ใช้ได้ตามปกติ

สาเหตุ

Server ที่ใช้งาน กำหนด Domain โดยไม่ต้องมี www นำหน้า เช่น elearning-xyz.net ก็เข้าไปที่เว็บได้เลย

การลิงค์จากหน้าเมนูหลัก ไปยังหน้าวิชา ใช้การลิงค์แบบไม่มี www เช่น elearning-xyz.para.htmlดูเหมือนว่า Chrome จะไม่เติม www นำหน้าให้ แต่  Browse เติมให้ เป็น www.elearning-xyz.net/para.html จึงทำให้ Session ยังคงอยู่

ผมก็ไปแก้ลิงค์ใหม่ ให้เป็น www.elearning-xyx.net/para.html ทั้งหมด ดูเหมือนว่า จะแก้ปัญหา ไปได้

แต่ก็เจอปัญหาใหม่อีก คือ คลิกให้แสดงผลการเรียนของผู้ที่กำลัง login อยู่ แต่ปรากฏว่า ไปเอาผลการเรียนของคนอื่น มาแสดง

ตรวจสอบดู ก็พบว่า Domain ที่มี www นำหน้า กับ Domain ที่ไม่มี www นำหน้า มี Session คนละตัวกัน ลิงค์ที่ไปเรียกใช้งาน เป็นลิงค์ที่ไม่มี www นำหน้า จึงเป็น Session ของ คนอื่น ไป ต้องไปแก้ ลิงค์ใหม่ให้เหมือนกัน จึงทำให้แก้ปัญหาไปได้

Domain ที่มี www นำหน้า

Domain ที่ไม่มี www นำหน้า


สรุปว่า

การใช้ Session ของ PHP ต้องระวังเรื่อง Domain ถ้าไม่เหมือนกัน Session ก็จะเป็นคนละตัวกัน และ ถ้า Domain ไม่มี www นำหน้า ก็จะมีปัญหากับ Chrome


อ้างอิง
http://stackoverflow.com/questions/8247842/session-data-lost-in-chrome-only
http://stackoverflow.com/questions/6784654/different-session-with-urls-with-www-and-without-www
http://stackoverflow.com/questions/8280994/how-to-write-session-for-both-www-and-non-www-version-of-my-domain


วันจันทร์ที่ 11 สิงหาคม พ.ศ. 2557

เคล็ดลับ การใช้ MS Word

เคล็ดลับ การใช้ MS Word จะนำเอาปัญหาปวดหัว และการแก้ไข เกี่ยวกับการใช้งานโปรแกรม MS Word

ปัญหา

เมื่อลากดำข้อความที่กำหนด และปรับเปลี่ยนตัวอักษร เช่น ปรับเป็นตัวหนา ข้อความอื่น ๆ เปลี่ยนตามไปด้วย แต่เมื่อคลิก เลิกทำ หรือ Undo ข้อความอื่น ๆ ก็จะกลับเป็นตัวปกติ เหมือนเดิม คงเหลือแต่เฉพาะข้อความที่ลากดำไว้เท่านั้นที่เป็นตัวหนา ตามที่ต้องการ

ลากดำข้อความ

กำหนดตัวหนา ทำให้ตัวหนาทั้งหมด

คลิก เลิกทำ (Undo) ข้อความกลับเป็นปกติ

สาเหตุ
                เนื่องจากส่วนที่ลากดำ มีการกำหนด Style เอาไว้ และมีการเลือกให้เปลี่ยนโดยอัตโนมัติ จึงทำให้ข้อความใน Style ที่กำหนดถูกเปลี่ยนไปด้วย

วิธีแก้ไข

  1. ลากดำข้อความที่เป็นปัญหา
  2. คลิกขวาที่ตัวเลขหัวข้อ และ เลือก ลักษณะ > รายการย่อย
  3. หรือ เปิด Style ของข้อความนั้น (ไปที่เมนู หน้าแรก กลุ่มลักษณะ และคลี่ดู Style ถ้าไม่เห็น ให้เลื่อนดูลงมา จะเห็น Style ของข้อความที่ลากดำ มีลักษณะกรอบสีเหลืองล้อมรอบ)
  4. คลิกขวาที่ Style และเลือก ปรับเปลี่ยน
  5. คลิกเครื่องหมายถูก หน้า ปรับปรุงอัตโนมัติออกไป และอย่าลืม คลิกถูกหน้าข้อความ เอกสารใหม่ที่ใช้แม่แบบนี้ เพื่อให้ใช้รูปแบบนี้ทุกเอกสารที่ต่อ ๆ ไป ด้วย
  6. ถ้ายังไม่หาย ให้หาว่า ยังมี Style ไหน ที่มีเครื่องหมายถูก หน้าข้อความ ปรับปรุงอัตโนมัติค้างอยู่บ้าง ให้เอาเครื่องหมายถูกออกให้หมด
ที่มา: http://support.microsoft.com/kb/814085 "Formatting Is Applied to the Whole Document Instead of to the Selected Text in Word"

ปัญหา

เมื่อเลือกหัวข้อ ข้อความในหัวข้อ ไม่เหมือนกับข้อความใน Paragraph


สาเหตุ
              เนื่องจากข้อความหลังจากหัวข้อ มี Style ของตัวเอง ไม่เหมือนกับ Style ที่ใช้ใน Paragraph จึงทำให้รูปแบบตัวอักษรไม่เหมือนกัน

การแก้ไข
             ให้กำหนด Style ของ หัวข้อให้เหมือนกับ style ของ Paragraph
  1. คลิกที่ข้อความหลังจากหัวข้อ
  2. เปิด Style และเลือก รายการย่อหน้า
  3. คลิกขวา และปรับเปลี่ยนให้ตรงกับลักษณะที่กำหนด เช่น ปรับชนิดของตัวอักษร เป็น TH-Sarabun New เป็นต้น
  4. สำหรับ ลักษณะของตัวเลข ให้ลากดำที่ตัวเลข และเลือก แบบอักษร

การใช้รายการหลายระดับ (Multilevel lists)

  1. พิมพ์ข้อความ แล้วกด Enter เพื่อขึ้นย่อหน้าใหม่
  2. ที่เมนูหน้าแรก กลุ่มย่อหน้า เลือก รายการหลายระดับ
  3. เลือกรายการที่ต้องการ (ถ้าไม่มีสามารถสร้างขึ้นใหม่ได้)
  4. เมื่อเลือกจะเกิดหัวข้อ เลข 1.
  5. พิมพ์ข้อความที่ต้องการ

  6. กด Enter จะเกิดหัวข้อที่ 2.
  7. กดปุ่ม Tab จะร่นระดับหัวข้อลง
  8. พิมพ์ข้อความ และกด Enter จะเพิ่มรายการในระดับเดียวกัน
  9. ถ้าต้องการหัวข้อย่อยลงไป กดปุ่ม Tab
  10. ถ้าต้องการ หัวข้อระดับที่สูงขึ้น ให้กดปุ่ม Shift + Tab จนได้ระดับที่ต้องการ  ในตัวอย่าง กดปุ่ม Shift ค้างไว้ และกดปุ่ม Tab 2 ครั้ง เพื่อถอยกลับมาจาก 1.4.1 จนได้หัวข้อหมายเลข 2
  11. ถ้าต้องการหยุดหัวข้อ เมื่ออยู่ที่หัวข้อสุดท้าย ให้กด Enter และคลิกที่ปุ่มรายการ ในกลุ่ม ย่อหน้า










วันเสาร์ที่ 9 สิงหาคม พ.ศ. 2557

การใช้ Combo Box ของ Access 2010

Combo Box ของ Access 2010 มีไว้สำหรับการเลือกข้อมูล ซึ่งอาจจะกำหนดเอง หรือให้เลือกข้อมูลจากตาราง หรือ Query มาแสดงให้เลือกก็ได้ เช่น

การสร้าง Combo Box โดยใช้ ตัวช่วยสร้าง (Wizards)
  1. สร้างฟอร์มเปล่า (Blank form) เลือก Design View 
  2. เนื่องจากเราต้องการใช้ตัวช่วยสร้าง Combo Box จึงต้องเลือก Use Control Wizards (ปกติจะถูกเลือกอยู่แล้ว ถ้าไม่ถูกเลือก ต้องคลิกเลือกเสียก่อน)
  3. คลิกเลือกเครื่องมือ Combo Box
  4. วาดสี่เหลี่ยมผืนผ้า ในบริเวณที่ต้องการสร้าง Combo Box จะเกิดหน้าจอตัวช่วยสร้างขึ้น
  5. ระบุให้ใช้ข้อมูลจากตาราง หรือ Query ที่มีอยู่แล้ว หรือ จะพิมพ์ข้อความเข้าไปเอง ก็ได้
  6. ทำตามหน้าจอจนจบ จะได้ Combo Box ที่ต้องการ
การปรับแต่งการใช้งาน Combo Box

การกำหนดให้ใช้ได้เฉพาะข้อความที่ให้เลือกเท่านั้น
  1. ที่มุมมองออกแบบ คลิกขวาที่ Combo Box เลือก Properties หรือ คุณสมบัติ
  2. กำหนด Limit to list เป็น Yes
การรวมฟิลด์ หลายฟิลด์ เป็นฟิลด์เดียว
โดยปกติ เรามักจะแยก คำนำหน้าชื่อ ชื่อ และนามสกุล ออกเป็น 3 ฟิลด์ เพื่อสะดวกในการเรียงชื่อ เมื่อต้องการนำฟิลด์ทั้ง 3 มาแสดงใน Combo Box โดยรวมกันเป็นฟิลด์เดียว ให้คลิกที่ Row Source และปรับ Query ใหม่ ดังภาพ
เมื่อแสดงใน Combo Box จะเห็นดังนี้
กำหนดความกว้างของแต่ละคอลัมน์ ขนาดจำนวนบรรทัดที่ให้แสดง และความยาวทั้งหมดของรายการที่แสดง โดยกำหนด Column Count, Column Widths, List Rows, List Widths ในหน้า Property Sheet เช่น


การจัดการกับข้อความที่ไม่มีในรายการให้เลือก

เมื่อกำหนดให้ Limit To List เป็น Yes และเมื่อผู้ใช้พิมพ์ข้อความที่ไม่มีให้เลือก สามารถมีวิธีจัดการได้หลายวิธี เช่น

  1. แสดงข้อความ ปฏิเสธ พร้อมทั้งบอกให้เลือกจากรายการ
    วิธีการ
    1. ไปที่ Event On Not In List 
    2. พิมพ์โค้ดต่อไปนี้
    3. จะได้หน้าจอดังนี้

  2. สอบถามว่า ต้องการเพิ่มข้อมูลในรายการหรือไม่ ถ้าต้องการเพิ่ม ให้เปิดหน้าจอเพื่อแก้ไขข้อมูล วิธีนี้ เมื่อทำเสร็จแล้ว ต้องจัดการ Requery ให้กับ Combo Box ด้วย เพื่อให้เห็นรายการใหม่
    1. ที่ Not In List บน Property Sheet ให้คลิกเพื่อเปิดหน้าจอและเขียนโค้ด ดังภาพ
    2. ในโค้ดของหน้าจอที่เรียก ต้องระบุให้ Requery Combo Box ด้วย
    3. เมื่อไม่มีข้อความในรายการ จะแสดงหน้าจอ และถ้าต้องการเพิ่มรายการ จะเปิดหน้าจอให้เพิ่มรายการได้
  3. สอบถาม และเพิ่มข้อมูลที่พิมพ์ ลงในตารางให้ด้วย ถ้าผู้ใช้ต้องการ
    ที่ Not In List บน Property Sheet ให้คลิกเพื่อเปิดหน้าจอและเขียนโค้ด ดังภาพ
                                          
  4. สร้างฟอร์มให้สามารถแก้ไขได้ โดยระบุชื่อฟอร์ม ใน List Items Edit Form ของแถบ Data ใน  Property Sheet และเมื่อกำหนดแล้ว ผู้ใช้จะเห็นมีสัญลักษณ์ให้แก้ไขได้ เช่น