ความรู้เบื้องต้นเกี่ยวกับแอคเซส

ปรับปรุง : 2553-01-18 (เตรียมสอน เทศบาลนคร)

ความรู้เบื้องต้น
ไม่มีใคร .. ศึกษาอะไร ได้ทุกเรื่อง แล้วสามารถจดจำ .. ตลอดไป
ผมยังจำไม่ได้เลยว่า มื้อเที่ยงเมื่อวาน เคี้ยวข้าวไปกี่คำ .. แม้ทำด้วยตนเองมาแล้ว
แค่นี้ผมยังจำไม่ได้เลย ..
ไมโครซอฟท์แอคเซส (Microsoft Access) คือ โปรแกรมเพื่อพัฒนาระบบฐานข้อมูล มีตารางเก็บข้อมูลและสร้างแบบสอบถามได้ง่าย มีวัตถุคอนโทลให้เรียกใช้ในรายงานและฟอร์ม สร้างมาโครและโมดูลด้วยภาษาเบสิก เพื่อประมวลผลตามหลักภาษาโครงสร้าง สามารถใช้โปรแกรมนี้เป็นเพียงระบบฐานข้อมูลให้โปรแกรมจากภายนอกเรียกใช้ก็ได้
ไมโครซอฟท์แอคเซส (Microsoft Access) ต่างกับ วิชวลเบสิก (Visual Basic) หรือ
วิชวลเบสิกดอทเน็ต (Visual Basic .Net)
เพราะ วิชวลเบสิกไม่มีส่วนเก็บข้อมูลในตนเอง แต่สามารถพัฒนาโปรแกรมได้หลากหลาย เช่น พัฒนาโปรแกรมควบคุมอุปกรณ์ โปรแกรมประยุกต์ทางวิทยาศาสตร์ เกมส์ หรือเชื่อมต่อกับระบบฐานข้อมูลภายนอก เป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมประยุกต์ (Application) ส่วนไมโครซอฟท์แอคเซสเหมาะสำหรับนักพัฒนาระบบฐานข้อมูลที่ไม่ต้องการโปรแกรมที่ซับซ้อน ความสามารถของโปรแกรมที่สำคัญคือสร้างตาราง แบบสอบถาม ฟอร์ม หรือรายงานในแฟ้มเดียวกันได้ ด้วยคุณสมบัติพื้นฐานและวิซซาร์ดจึงอำนวยให้พัฒนาโปรแกรมให้แล้วเสร็จได้ในเวลาอันสั้น มีเครื่องมือที่อำนวยความสะดวกในการพัฒนาระบบฐานข้อมูลอย่างครบถ้วน
แนะนำเว็บ (Web Guides)
+ Webboard เกี่ยวกับ Microsoft Access โดยกลุ่มสมาชิกลูกศิษย์ อ.สุภาพ ไชยา
+ Microsoft Access on MSDN
+ Mvps.org (Sample Code)
แผนการสอน : แบบแบ่งเป็นตอน
ตอนที่ 1 : หัดสร้างตาราง และใช้งาน
ตอน 1.1 : 2 table อย่างง่าย : เพราะจุดเริ่มต้นของ Access คือการเก็บข้อมูล
ตอน 1.2 : 2 query อย่างง่าย : เรื่องนี้จะช่วยให้การเรียกข้อมูลง่ายดังใจนึก
ตอน 1.3 : สร้างเพิ่มอีก 6 table : เพื่อฝึกฝน และย้ำความเป็นระบบฐานข้อมูลให้ชัดเจนขึ้น
ตอนที่ 2 : เริ่มโปรแกรมเบื้องต้น
ตอน 2.1 : เขียน Module #1 : ใช้ประสบการณ์เดิมศึกษาการคำนวณตามทฤษฎีของการโปรแกรมโครงสร้าง
ตอน 2.2 : เขียน Module #2 : ศึกษาการใช้ ฟังก์ชันพิเศษอื่น ร่วมในการเขียนโปรแกรม
ตอน 2.3 : เขียน Module #3 : ศึกษาการทำซ้ำซ้อนกัน .. อาจยากที่สุด แต่บริษัทต่าง ๆ ชอบใช้วัดคนเข้าทำงาน
ตอน 2.4 : เขียน Module #4 : ศึกษาวิธีการเลือกข้อมูลมาใช้ด้วย if หรือ select
ตอน 2.5 : เขียน Module #9 : หาอายุ และเปลี่ยนปีไทย เป็นฝรั่ง (ศึกษาจากกรณีของชุติกร)
ตอนที่ 3 : เรียนรู้ sql เพื่อจะได้ประยุกต์ใช้ต่อไป
:: หัวข้อนี้อาจลึกไปสำหรับหลาย ๆ คน ข้ามไปก็ได้นะครับ .. เพราะอาจไม่ต้องใช้ก็ได้
ตอน 3.1 : เขียน Module #5 : ศึกษาการอ่านข้อมูลจากตารางด้วย select
ตอน 3.2 : เขียน Module #6 : ศึกษาการเพิ่มข้อมูลด้วย insert
ตอน 3.3 : เขียน Module #7 : ศึกษาการลบข้อมูลด้วย delete
ตอน 3.4 : เขียน Module #8 : ศึกษาการแก้ไขข้อมูลด้วย update
ตอนที่ 4 : เรียนรู้ Form บันทึกข้อมูล และปุ่ม (อย่างง่ายตารางเดียว)
ตอน 4.1 : form เปิดตาราง #1 : นำตาราง table:catalog มาเปิดในฟอร์ม
ตอน 4.2 : form เปิดตาราง #2 : สร้างปุ่มประกอบฟอร์มข้างต้น เช่น first,previous,next,last,new เป็นต้น
ตอน 4.3 : form เปิดตาราง #3 : สร้างปุ่มเต็มจอ พร้อมตัวอย่างการปรับแต่งอย่างง่าย ด้วยสี่เหลี่ยมมีเงา
ตอนที่ 5 : ใช้ form ปรับปรุงข้อมูล (หัวข้อนี้ ท่านอาจประยุกต์ได้หลากหลาย)
ตอน 5.1 : เพิ่มข้อมูล ผ่าน form : ใช้วิธีเก็บข้อมูลใน text box แล้วถามยืนยัน ว่าแน่นอนหรือไม่
ตอน 5.2 : เพิ่มโดยใช้ temp file : เพิ่มข้อมูล เข้า catalogtmp เมื่อยืนยัน จึงจะส่งไปใน catalog
    ตอนที่ 6 : กรณีศึกษาระบบฐานข้อมูล พร้อม MDB file
  1. แฟ้มสำหรับนำไปทดสอบ tchmdb97.zip 72 KB
  2. แฟ้มสำหรับนำไปฝึก จัดตารางสอบ timetabling.zip 11 KB
    ประกอบด้วย ข้อมูลการลงทะเบียน ข้อมูลวิชา และข้อจำกัด
  3. กรณีศึกษา ระบบรับ-ส่งสินค้า
    : พัฒนาขึ้นอย่างง่าย ๆ ตามโจทย์ที่คุณสุวิทย์ ได้มาจากการเรียนปริญญาโทที่พะเยา
  4. กรณีศึกษา ระบบบันทึกเวลาเข้าออกงาน
    : ไม่ใช้ปุ่ม แต่ใช้ร่วมกับเครื่องอ่านบัตร เลือกบันทึกการเข้า ออกงาน อัตโนมัติ อย่างง่ายมาก ๆ เพราะมี form เดียวเท่านั้น (ต่อมาเพิ่มรายงานเข้าไป 2 รายงานที่ดึงข้อมูลจาก query เพื่อทำรายงาน คนมา และคนที่ไม่มา)
  5. กรณีศึกษา บันทึกเวลา ร่วมกิจกรรม
    : ฟอร์มเดียว ตารางเดียว จะได้ให้นักศึกษาใช้บัตร Barcode เดินเข้ามารูด เพื่อบันทึกการร่วมกิจกรรม เจ้าหน้าที่ก็จะ copy แฟ้มไปใช้ในโปรแกรมอื่น ๆ ต่อไป
  6. กรณีศึกษา คำนวณอายุ และปีไทย
    : แสดงการทำงานร่วมกับ form และ query โดยใช้ text box เป็นตัวเลือก criteria และเรียกฟังก์ชันโดยตรงจาก module ที่สร้างขึ้นในส่วนกลาง
  7. กรณีศึกษา yn351003.zip 68 KB
    : ระบบ e-Portfolio เพื่อบันทึกข้อมูลการทำงานของบุคลากรแต่ละคน แต่ยังพัฒนาไม่เสร็จ เพราะรอความแน่นอนของผู้บริหาร และคณะกรรมการวิชาการ
  8. กรณีศึกษา regists.zip
    : ระบบบันทึกข้อมูลนักเรียนอย่างง่าย มีการใช้ form ที่ปิดการแสดงผล หรือ logo ของ MS Access ในระดับหนึ่ง แสดงการเรียนรายงาน เลือกข้อมูล Sub form และการใช้ Query ให้ดูเป็นระบบที่สวยงาม ผมทำไว้เตรียมสอนให้นักศึกษาทำ project ลักษณะนี้ได้อย่างง่าย ๆ เหมาะกับจอกว้าง 8 นิ้ว สูงประมาณ 6.3 นิ้ว
  9. กรณีศึกษา db4order.zip 13 KB
    : เก็บตารางเกี่ยวกับการสั่งซื้ออย่างง่าย สอดคล้องกับใน /mysql และ /learn/sader.htm
    orderm : คำว่า m ย่อมาจาก main หมายถึง ข้อมูลการสั่งซื้อของแต่ละใบ ถ้ามี 3 ใบ ก็จะมี 3 ระเบียนในตารางนี้
    orderd : คำว่า d ย่อมาจาก detail หมายถึง ข้อมูลรายละเอียดการสั่งซื้อ เช่นใบสั่ง 3 ใบ อาจสั่งสินค้า 6 รายการ แฟ้มนี้อาจมี 6 ระเบียน
    pro : คำว่า pro ย่อมาจาก product หมายถึง ข้อมูลจำนวนสินค้า อาจมีสินค้าเป็น 1000 รายการ แฟ้มนี้ก็จะเก็บ 1000 ระเบียน
    cust : คำว่า cust ย่อมาจาก customer หมายถึง ข้อมูลจำนวนลูกค้า อาจมีลูกค้าเป็น 1000 รายการ แฟ้มนี้ก็จะเก็บ 1000 ระเบียน
  10. 2548-05-13 กรณีศึกษา teachgov1.mdb 136 KB (ประกอบการอบรมข้าราชการ)
    : พฤษภาคม 48 นำบทเรียนนี้มาปัดฝุ่น เพิ่มเรื่องระบบฐานข้อมูลเกี่ยวกับ การทำ denormalization สำหรับนำไปใช้ทำรายงานได้ทันที และใช้เวลาในการอบรมมากขึ้น (18 ชั่วโมง 3 วันติดกัน) จึงเตรียมเนื้อหาแยกเป็น 8 หน่วย ให้ชัดเจนขึ้น
    : ตุลาคม 47 ใช้เวลา 10 ชั่วโมง วันละ 2 ชั่วโมง เน้นให้สามารถออกแบบตาราง ให้กับหน่วยงานของตนได้ แม้จะทราบว่าการเขียน Access ได้จะต้องเข้าใจเรื่อง ระบบฐานข้อมูล การเขียนโปรแกรมเบื้องต้น MIS และ MS Access แต่ข้อจำกัดเรื่องเวลา จึงเตรียมไว้เท่านี้ก่อน
    gov : govid, govname และ salary : yr, govid, salary
    ตัวอย่างใช้งานทั้ง table, query, form, report, macro และ module
    โดยเน้นการสั่งงานหลักจาก form ชื่อ main
    [ แผนการสอน ] สำหรับข้าราชการที่มีพื้นฐาน และสนใจ
    Function ใน module สำหรับ เปลี่ยนตัวเลขเป็นอักษร
  11. กรณีศึกษา พิมพ์ผลประเมินการสอน + พิมพ์ผลจิตพิสัยกลาง ( eval200401m.zip )
    ระบบประเมินมีอยู่แล้ว โปรแกรมนี้เพีบงแต่นำข้อมูลมาพิมพ์รายงานให้กับผู้สอนแต่ละคน
    ระบบการเก็บคะแนน กิจกรรมหลัก และ กิจกกรรมรอง มีแล้ว โปรแกรมนี้เพียงทำรายงาน

  12. สร้างแฟ้ม .mde ใช้แทน .mdb (เสมือน .exe ที่รู้จักกัน)
    นักพัฒนาหลายคนอยากได้ .exe แต่ microsoft Access ไม่มีให้ ทางออกที่มีคือ หลังสร้าง .mdb ก็สร้าง .mde ขึ้นมา แล้วส่งให้กับผู้ใช้นำไปใช้ ส่วน programmer ก็เก็บ .mdb กั๊กไว้พัฒนาโปรแกรมต่อไป
    ลูกค้าที่ได้แฟ้ม .mde ไป จะไม่สามารถแก้ไข form, report และ module ทำได้เพียงการเปิดมาทำงานเท่านั้น การ import เข้าใน .mdb ตัวอื่นก็ไม่ได้ เพราะ .mde จะป้องกันการคัดลอกไว้เรียบร้อย
  13. 2549-04-18 โปรแกรมแสดงผลการเลือกตั้งใน LAN election.zip 40 KB
  14. 2549-09-03 กรณีศึกษาระบบโรงเรียน IP System schoolipv1.zip 147 KB (MDB in 97)
  15. 2550-04-12 โปรแกรมสำหรับ ดูรหัสผ่านที่เข้าใช้งานโปรแกรม .mdb (ดูด้วย Password Retrieval)
  16. 2550-10-24 โปรแกรมแสดงการทำงานของลิฟ (Lift System) ให้นักศึกษานำไปปรับปรุง หรือเป็นต้นคิดสำหรับภาษาอื่น เพราะโปรแกรมมีฟอร์มเดียว ไม่มีฐานข้อมูลใดเลย 90 KB
เตรียมสอน Microsoft Access 2003
1. 2552-07-21 a20031.mdb คือ กรณีศึกษาการจัดการตารางเดียว ใน Access 2003
- empl (eid number, ename text, edep text, esex y/n, ebirth date, esalary number)
- q1 รายชื่อบุคลากรเรียงตามชื่อจากน้อยไปมาก
- q2 SELECT empl.* FROM empl WHERE (((empl.esex)=Yes));
- q3 รวมเงินเดือนบุคลากรแต่ละแผนก
- q4 INSERT INTO empl ( eid ) SELECT DMax("eid","empl")+1 AS E1;
- q5 DELETE Len([ename]) AS Expr1 FROM empl WHERE (((Len([ename])) Is Null));
- q6 เพิ่มเงินเดือนให้พนักงาน 101 เพิ่มขึ้นอีก 1 บาท
- q7 ตารางไขว้ว่า แต่ละแผนก มีแต่ละเพศกี่คน ให้แผนเป็น row และเพศเป็น column
- Form1 วาดเส้น 2 เส้นตัดขวางกันอยู่
- Form2 ใช้ Wizard เรียก q1 มาแสดงผล แบบ Columnar
- Report1 ใช้ Wizard เรียก q7 มาแสดงผล แบบ Columnar
- Report2 ใช้ empl วางใน field ใน detail และเปลี่ยนสีพื้นให้กับ header และ footer
- Report3 ใช้ empl แสดงรายชื่อพนักงาน แยกรายชื่อพนักงานแผนกละหน้า
- Report4 ใช้ Report3 แต่เพิ่ม textbox ใน footer ของ group ใช้ =Sum([esalary]) +ใช้ Running Sum
- Macro ชื่อ autoexec จะเปิดทันทีเมื่อเปิดแฟ้มนี้ แต่ถ้ากดปุ่ม shift ค้างไว้ก็จะไม่เข้า Macro
- ถ้าใช้ pdfcreator ก็จะส่งรายงานไปเป็น PDF File ได้
- Menu bar, Tools, Options, Edit, Confirm (ยกเลิก Confirm : Rec. Chg, Doc Del, Action Queries)
- Security Warning จะไม่ให้เตือนอีก เข้า Menu Bar, Tools, Macro, Security = Low, Yes
2. 2552-07-22 a20032.mdb คือ กรณีศึกษาประมวลผลด้วย SQL ใน Access 2003
- empl (eid number, ename text, edep text, esex y/n, ebirth date, esalary number)
- dep (edep text, eid number, tel text)
- sex (esex y/n, sexdesc text)
- pro (proid number, proname text, prodetail memo, edep text, budget number, finish y/n)
- proteam (proid number, eid number, position text)

- q1 เบอร์ติดต่อภายในของพนักงานแต่ละคน คืออะไร SELECT empl.eid, dep.tel FROM empl INNER JOIN dep ON empl.edep = dep.edep; - q2 แต่ละโครงการมีบุคลากรท่านใด ร่วมทีมบ้าง SELECT pro.proid, pro.proname, empl.eid, empl.ename FROM (pro INNER JOIN proteam ON pro.proid = proteam.proid) INNER JOIN empl ON proteam.eid = empl.eid ORDER BY pro.proname, empl.eid; - q3 แต่ละโครงการมีชายกี่คน หญิงกี่คน รวมทั้ง 2 เพศกี่คน SELECT pro.proid, pro.proname, Count(IIf([esex]=True,[esex])) AS m, Count(IIf([esex]=False,[esex])) AS f, Count(empl.eid) AS CountOfeid FROM (pro INNER JOIN proteam ON pro.proid = proteam.proid) INNER JOIN empl ON proteam.eid = empl.eid GROUP BY pro.proid, pro.proname; - form1 สร้างมีปุ่มเพิ่มข้อมูลด้วย sql หลายแบบ
dim s as string
s1 = "INSERT INTO empl ( eid ) SELECT DMax('eid','empl')+1 AS E1;"
s2 = "INSERT INTO empl ( eid ) SELECT " & Text0 & " AS E1;"
s3 = "INSERT INTO empl ( eid,ename ) values ( " & Text0 & ",'" & Text2 & "')"
If (Text0 > 100 And Len(Text0) > 2) Then ... end if
docmd.runsql s - form2 เพิ่มเสน่ห์ให้กับฟอร์มด้วยฟังก์ชัน
Text0 = DMax("eid", "empl") + 1
s1 = "DELETE eid FROM empl WHERE eid = " & Text0
s2 = "UPDATE empl SET ename ='" & Text2 & "' WHERE eid =" & Text0 - report1 คือรายงานที่รับค่าจากฟอร์ม โดยเลือกจาก record source
DoCmd.OpenReport "report1", acViewPreview
SELECT empl.* FROM empl WHERE (((empl.eid)=forms!form2!text0)); - ปุ่มอ่านข้อมูลมาแสดงใน msgbox Option Compare Database Option Explicit Dim db As Database Dim rs As Recordset Dim s, m As String Set db = CurrentDb() s = "SELECT * FROM empl" Set rs = db.OpenRecordset(s) rs.MoveFirst While Not rs.EOF m = m & rs!eid & rs!ename & Chr(10) rs.MoveNext Wend MsgBox m rs.Close db.Close
3. 2552-08-01 a20033.mdb คือ macro menu, subform, listbox, combobox
- คำสั่งในฟอร์ม 1 เกี่ยวกับ listbox และ combobox ที่กำหนดแบบเป็น Value List
Private Sub Command1_Click()
  Child5.Form!Text1 = Text3 ' forms!form1!text3 = 5
End Sub
Private Sub Command11_Click()
  For i = 0 To List9.ListCount
    If (List9.Selected(i) = True) Then
      List12.AddItem (List9.ItemData(i)) ' เพิ่มเข้า listbox ใหม่
      Combo20.AddItem (List9.ItemData(i)) ' เพิ่มเข้า combobox ใหม่
    End If
  Next
End Sub
Private Sub Command14_Click()
  For i = 0 To List9.ListCount
    If (List9.Selected(i) = True) Then List9.RemoveItem (i)
  Next
End Sub
Private Sub Command19_Click()
  MsgBox (List9.ItemData(Text16)) ' แสดง item ที่ต้องการ
End Sub
Private Sub Command8_Click()
  List9.AddItem (Now) ' เพิ่ม item เข้า listbox
End Sub
Private Sub Form_Load()
  Child5.SourceObject = "form3" ' กำหนดชื่อฟอร์มให้กับ subform
End Sub
การแปลงฐานข้อมูล

- เพื่อนส่งแฟ้มที่สร้างจาก 2000 แต่ที่บ้านมี 97 ที่ทำงานมี 2003
- ผมจึงต้องไปเปิดที่ทำงานด้วย 2003 แล้วแปลงเป็น 97 เพื่อนำมาพัฒนาต่อที่บ้าน
Tables ::
จัดเก็บข้อมูล แต่ต้องมีความรู้พื้นฐานเรื่องของฐานข้อมูล เพื่อให้สามารถออกแบบระบบ และการเก็บข้อมูลให้เ็ป็นตามความต้องการของผู้ใช้ ซึ่งเป็นสิ่งแรกที่ต้องทำใน Access
Querys ::
ช่วยให้การใช้งานตารางมีความยืดหยุ่นอย่างมาก เป็นการใช้ QBE = Query By Examble หรืออาจใช้ SQL เรียกข้อมูลมาใช้ก็ทำได้ ชื่อของ query จะซ้ำกับ table ไม่ได้ เพราะทั้ง 2 อย่างนี้มีสถานะเหมือนกัน คือเป็นแหล่งให้ข้อมูลแก่ส่วนอื่น แต่ตารางจะเป็นข้อมูลจริง ส่วน query จะเรียกตารางมาสร้างความสัมพันธ์ขึ้นใหม่
Forms ::
ช่วยรับข้อมูล หรือจะแสดงผลก็ได้ เป็นส่วนที่ช่วยให้ผู้ใช้ได้มี Interface กับเครื่องคอมพิวเตอร์ การพัฒนาโปรแกรมส่วนใหญ่จะให้ความสำคัญกับส่วนนี้เป็นหลัก เพราะเป็นการนำส่วนอื่น ๆ มาใช้ร่วมกันได้อย่างลงตัว
ตัวอย่างคำสั่ง
DoCmd.GoToRecord , , acNewRec
Reports ::
พิมพ์ข้อมูลเป็นรายงานออกทางเครื่องพิมพ์ และง่ายในการนำข้อมูลจากตาราง หรือคิวรี่มาจัดรูปแบบให้เรียบร้อย แล้วจึง Preview หรือ Print ทันที
ตัวอย่างคำสั่ง
=Int(Left(Format(Date()-[Datebirth],"yyyy")-1900,2))
Macros ::
ช่วยสั่งประมวลผลด้วยวิธีที่ง่าย แบบทีละบรรทัด เช่น macro ชื่อ autoexec หรือใช้ macro ทำ Menu Bar ใช้เอง
ตัวอย่างโปรแกรม
autoexec และกดปุ่ม shift เพื่อข้ามไป
Modules ::
โปรแกรมเมอร์สามารถสร้างคำสั่งทั้งหมด เก็บไว้ที่นี่แล้วเรียกใช้ หรือจะเขียนคำสั่งไว้ในแต่ละฟอร์มก็ทำได้ ถ้าคิดว่าโปรแกรมที่เขียนขึ้นไม่ถูกเรียกใช้ในฟอร์มอื่น
ตัวอย่างโปรแกรม
Dim i, j As Integer
j = 0
For i = 1 To getint
j = j + i
Next
MsgBox j
Dim c, d, e
call cutfield("boy|bb|ccc|dddd",1)
Function cutfield(s As String, fld As Integer)
c = InStr(s, "|")
Debug.Print Mid$(s, 1, c - 1)
s = Mid$(s, c + 1)
c = InStr(s, "|")
Debug.Print Mid$(s, 1, c - 1)
s = Mid$(s, c + 1)
c = InStr(s, "|")
Debug.Print Mid$(s, 1, c - 1)
End Function
โปรแกรมสำหรับโรงเรียนจาก สำนักงานคณะกรรมการการศึกษาขั้นพื้นฐาน กระทรวงศึกษาธิการ
1. โปรแกรม : บริหารสถานศึกษา BEIS (Basic Education Information System)
+ http://210.1.20.11/doc/web_doc/information_eis.htm [obec_doc@hotmail.com]
! http://smis.bopp.go.th/smis/proupdate.htm
! http://smis.click-computer.com
+ เป็นลิขสิทธิ์ของ สพฐ. ที่มุ่งเน้นเพื่อลดภาระงานภายในโรงเรียน และพัฒนาระบบงานภายในโรงเรียนให้ มีการบริหารจัดการแบบ E-Office และสามารถแจกจ่าย ให้โรงเรียนใช้ฟรี โดยไม่มีเงื่อนไข ใด ๆ ทั้งสิ้น ประกอบด้วย 8 ระบบงานดังนี้ 1)งานทะเบียน – วัดผล 2)งานกิจการนักเรียน 3)งานบุคลากร 4.งานดูแลช่วยเหลือ นร. 5)งานพัสดุครุภัณฑ์ 6)งานห้องสมุด 7)งานงบประมาณการเงิน 8)งานพิมพ์บัตร

2. โปรแกรม : Students'44 Version 2.1Final
ผู้สร้างสรรค์ : ครูอัมพร ชมเด็จ [email] 70 MB
เผยแพร่โดย : กระทรวงศึกษาธิการ
+ โปรแกรมระบบงานทะเบียน-วัดผล และสารสนเทศนักเรียน (Students'44) เป็นโปรแกรมสำหรับในการจัดเก็บ ข้อมูลพื้นฐานและผลการเรียนของ นักเรียน และจัดพิมพ์เอกสารทางการศึกษาต่างๆ
StudentSetup.exe
Site 1 : http://gpa1.moe.go.th
Site 2 : http://gpa2.moe.go.th
Site 3 : http://gpa3.moe.go.th
+ Press Shift : Passwd Recover #1 #2
แบบของข้อมูลในไมโครซอฟท์แอคเซส (Microsoft Access Data Types) (?)
แบบข้อมูลรายละเอียดขนาด
Text ชุดตัวอักษร หรือตัวอักษรรวมกับตัวเลข เช่น ที่อยู่ ชื่อ เป็นข้อมูลที่ไม่นิยมใช้สำหรับการคำนวณ <= 255 Bytes
Memo บันทึก หรือชุดตัวอักษรที่เก็บรายละเอียดได้มาก มักมีขนาดไม่แน่นอน <= 64000 Bytes
Number ตัวเลขสำหรับการคำนวณ ซึ่งมีหลายรูปแบบ เช่น Byte , Integer , Long Integer (Default) , Decimal , Single , Double และ Replication ID 1 - 16 Bytes
Date/Time วันที่ / เวลา 8 Bytes
Currency หน่วยทางการเงิน เก็บตัวเลข 15 หลักทางซ้ายของจุด และทศนิยม 4 ตำแหน่ง 8 Bytes
AutoNumber ตัวเลขที่ไม่ซ้ำและเพิ่มทีละ 1 เมื่อเพิ่มระเบียนใหม่อัตโนมัติ 4 Bytes และ
16 Bytes สำหรับ Replication ID (GUID)
Yes/No เก็บเพียง 2 สถานะ คื อ Yes/No, True/False, On/Off 1 bit
OLE Object วัตถุภายนอก เช่น Word , Excel , Pictures, Sounds หรือ ไบนารี่ดาต้า 0 - 1 GB (จำกัดตามขนาดฮาร์ดดิสก์)
Hyperlink ตำแหน่ง หรือที่อยู่ของเว็บไซต์ 0 - 64000 ตัวอักษร
Lookup Wizard เขตข้อมูลสำหรับเลือกค่าจากตาราง หรือลิสท์ หรือคอมโบ้บ็อก เท่ากับแหล่งที่เชื่อมโยงมา

คุณสมบัติของขนาดตัวเลข (Numeric Field Size Properties) (?)
แบบข้อมูล รายละเอียด ทศนิยม ขนาด
Byte เลขระหว่าง 0 - 255 ไม่มี 1 Byte
Integer เลขระหว่าง -32,768 ถึง 32,767 ไม่มี 2 Bytes
Long Integer เลขระหว่าง -2,147,483,648 ถึง 2,147,483,647 ไม่มี 4 Bytes
Decimal เลขระหว่าง -10^28 -1 ถึง 10^28 -1 (.mdb) 28 12 Bytes
Single เลขระหว่าง -3.4028E38 ถึง -1.4012E-45 สำหรับค่าลบ
เลขระหว่าง 1.4012E-45 ถึง 3.4028E38 สำหรับค่าบวก
7 4 Bytes
Double เลขระหว่าง -1.7976E308 ถึง -4.9406E-324 สำหรับค่าลบ
เลขระหว่าง 1.7976E308 ถึง 4.9406E-324 สำหรับค่าบวก
15 8 Bytes
Replication ID ค่า GUID (Globally unique identifier) N/A 16 Bytes
วันที่ รุ่น เลขรุ่น ระบบปฏิบัติการที่สนับสนุน รุ่นของชุดออฟฟิศ
1992 Access 1.1 1 Windows 3.1x
1993 Access 2.0 2.0 Windows 3.1x Office 4.3 Pro
1995 Access 95 7.0 Windows 95 Office 95 Professional
1997 Access 97 8.0 Windows 9x, NT 3.5/4.0 Office 97 Professional and Developer
1999 Access 2000 9.0 Windows 9x, NT 4.0, 2000 Office 2000 Professional
Office 2000 Premium and Developer
2001 Access 2002 10 Windows 98, Me, 2000, XP Office XP Professional and Developer
2003 Access 2003 11 Windows 2000, XP Office 2003 Professional
Office 2003 Enterprise
2007 Access 2007 12 Windows XP SP2, Vista Office 2007 Professional
Office 2007 Professional Plus
Office 2007 Ultimate and Enterprise
ไม่มี Access ระหว่างรุ่น 2.0 ถึง 7.0 เพราะ วินโดว์95 ประกาศใช้ Word7 ดังนั้นใน Office95 จึงมีโปรแกรมที่เริ่มต้นด้วยเลข 7 ทั้งหมด เพื่อให้สัมพันธ์กับ Word7

หลักสูตรอบรม Microsoft Access 2003 ระยะเวลา 12 ชั่วโมง (แบบทดสอบ)
วันแรก (กำหนดการอย่างเป็นทางการ)
9.00 น. - 9.30 น. ความรู้เบื้องต้นเกี่ยวกับไมโครซอฟท์แอคเซส 
- วัตถุประสงค์การการใช้ไมโครซอฟท์แอคเซส (Objective)
- วัตถุของไมโครซอฟท์แอคเซส (Object of Microsoft Access)
- ความแตกต่างของแฟ้ม .MDB และ MDE
- ความแตกต่างของไมโครซอฟท์แอคเซสแต่ละรุ่น 9.30.00 น. - 10.30 น. การจัดการตาราง (Table Management)
- การสร้างตารางด้วย Design View, using wizard และ entering data
- การ Get External Data แบบ Import จากระบบฐานข้อมูลอื่น
- การ Get External Data แบบ Link Table จากระบบฐานข้อมูลอื่น
- การ Export Table 10.30.00 น. - 12.00 น. การสร้างแบบสอบถาม (Query Creating)
- แบบสอบถามแบบจัดเรียง และเลือกข้อมูล (Sort and Criteria)
- แบบสอบถามแบบจัดกลุ่ม และใช้ฟังก์ชัน (Grouping and function)
- แบบสอบถามแบบประมวลผล (Executable Query)
- แบบสอบถามแบบแท็บไขว้ (Crosstab Query) 12.00น. - 13.00น. พักรับประทานอาหารกลางวัน 13.00 น. - 14.30 น. ฟอร์มเบื้องต้น (Form)
- ฟอร์มแบบด้วย Design View และ using wizard
- ฟอร์มแบบไม่ใช้ตารางข้อมูล
- ฟอร์มแบบใช้ตารางข้อมูล หรือแบบสอบถาม
- ปุ่มด้วย wizard 14.30 น. - 16.00 น. รายงานเบื้องต้น (Report)
- รายงานแบบด้วย Design View และ using wizard
- รายงานแบบไม่ใช้ตารางข้อมูล
- รายงานแบบใช้ตารางข้อมูล หรือแบบสอบถาม
- รายงานแบบ report & page header, group
- การใช้ function in textbox วันที่สอง 9.00 น. - 10.30 น. การเชื่อมตารางในแบบสอบถาม
- การเชื่อมตารางผ่าน Primary key
- การเขียน SQL หรือนำ SQL ไปใช้ในรายงาน หรือฟอร์ม 10.30.00 น. - 12.00 น. ปุ่มคำสั่งในฟอร์ม
- เขียนคำสั่งในปุ่มคำสั่ง
- การเชื่อมโยงระหว่างฟอร์ม แบบสอบถาม และรายงาน
- การส่งค่าระหว่างฟอร์ม แบบสอบถาม และรายงาน 12.00 น. - 13.00 น. พักรับประทานอาหารกลางวัน 13.00 น. - 14.30 น. การสั่งประมวลผลตารางข้อมูลจากฟอร์ม
- การสั่งประมวลผลในฟอร์มต่อตารางข้อมูลผ่านปุ่มคำสั่ง
- การเขียนฟังก์ชันในโมดูล และการเรียกใช้โมดูลในฟอร์ม 14.30 น. - 16.00 น. ทบทวน
- การสร้างเว็บเพจที่เชื่อมโยงข้อมูลจากตาราง
- การแยกข้อมูลออกจากโปรแกรมเป็น .mdb 2 แฟ้มที่เชื่อมโยงกัน
- เชื่อมโยงตาราง แบบสอบถาม ฟอร์ม รายงาน และโมดูลเข้าด้วยกัน

คำถามที่ถูกถามบ่อย
  1. เก็บปี ค.ศ. ใน Table แบบ Date/Time แต่ลบ ค.ศ.ไปอีก 543
    - ถ้าเก็บข้อมูลใน xdate พลาดไปแล้ว เช่น 1464 เป็นต้น
    - ถ้าแก้ตอนทำรายงานก็อาจใช้ฟังก์ชันปรับการแสดงผล
    เช่น chkdate: CDate(Format(Month([xdate]) & "/" & Day([xdate]) & "/" & Year([xdate])+543,"mm/dd/yyyy"))
  2. แสดงวันที่ในช่วง 30 วัน จากวันนี้ของปีที่แล้วใน Criteria ของ Query
    เช่น <Now()-360 And >Now()-390
  3. พบคำว่า can't build key เมื่อเปิดแฟ้ม .mdb ที่สร้างจาก Access 2.0 ไปใน Access 97
    วิธีที่ 1 กระชับฐานข้อมูล (Compact) ใน Access 2.0 ก่อนนำไปเปิดใน Access 97 หรือสูงกว่า
    วิธีที่ 2 โปรแกรมแปลง 2.0 เป็น 2003 จาก Microsoft
    - The Access 2.0 Converter is used by Microsoft Office Access 2003 to enable you to convert files from the Microsoft Access 2.0 file format.
  4. ภาษาไทยเป็น ??? เมื่อนำไปใช้กับ ASP ใน server ของ godaddy.com
    พบว่าถ้าเป็น Access 2003 จะมีปัญหาภาษาไทยใน godaddy แต่ผม Convert .mdb มาเป็นรูปแบบแฟ้มของ Access 97 แล้ว upload กลับไปยัง server ก็ไม่พบปัญหา ?? อีกเลย ใช้งานได้ปกติ
  5. พบคำว่า ? Can't Find Project or Library
    จากการ convert แฟ้ม .mdb ที่สร้างด้วย Access2003 ไปเป็น Access97 พบว่าใช้ฟังก์ชันบางตัวไม่ได้เช่น chr ทั้ง ๆ ที่น่าจะใช้ได้ วิธีแก้ไขคือ ถ้ายกเลิกการอ้างอิง 3 รายการที่เป็นสีแดงออก ก็จะใช้งานได้ตามปกติ แต่ 2 ตัวบนยกเลิกไม่ได้
  6. การติดตั้ง Office97 และ Office2003 ในเครื่องเดียวกัน
    วิธีแรก ให้ติดตั้ง Office97 ก่อน แล้วตามด้วย Office 2003
    ถ้าติดตั้ง 2003 ก่อน 97 จะทำให้ Microsoft Access 97 ใช้งานไม่ได้ แม้จะถอนแล้วลงใหม่ก็ใช้ไม่ได้เหมือนเดิม
    วิธีที่สอง ให้ติดตั้งระบบปฏิบัติการเพิ่มอีก 1 ตัว แล้วติดตั้ง Office ไว้แยกกัน
  7. การใช้ Microsoft Access 97 ใน WinXP ที่ใช้ database เป็น Data Type
    เช่น Dim db As Database
    จะต้อง Add Reference : Microsoft DAO 3.5 Object Library (แต่ใน Win98 ยังไม่ OK)
    โดย DOS>regsvr32 "c:\program files\common files\microsoft shared\dao\dao350.dll"
    อ่านจาก http://allenbrowne.com/ser-38.html

Sample : date2010.accdb

ผู้สนับสนุน ยินดีรับ ผู้สนับสนุน เว็บไซต์ด้านการศึกษา
กลุ่มเว็บไซต์นี้ เริ่มพัฒนา พ.ศ.2542
โดยบุคลากรทางการศึกษาด้านคอมพิวเตอร์
โทร. 081-9927223 (ผมเป็นคนลำปางหนา)
ปล. ขอไม่รับ work at home / อาหารเสริม

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยเนชั่น
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : facebook.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223