การทำระบบสมาชิกใน Access
เว็บเพจสำรอง (Backup Webpages) : http://www.thaiall.com/asp/aspmbr.htm | http://www.thaiabc.com/asp/aspmbr.htm
ปรับปรุง : 2548-02-08 ()
[ การทำระบบสมาชิกใน Access ]

  1. ข้อควรทราบ
  2. การเพิ่มสมาชิกใหม่ [ ทดสอบ form เพิ่มข้อมูล ]
  3. การลบสมาชิก [ ทดสอบ form ลบข้อมูล ]
  4. การแก้ไขสมาชิก [ ทดสอบ form แก้ไขข้อมูล ]
  5. การพิมพ์ข้อมูลสมาชิกล่าสุด 10 คน [ สั่ง แสดงข้อมูล ]
  6. แบบฝึกหัด
ข้อควรทราบ
  1. บทเรียนนี้ไม่ยากนัก เพราะ บทเรียนการเพิ่มข้อมูลเข้า Access ได้ปูพื้นฐาน การจัดการแฟ้มไว้พอสมควร ทำให้การเขียนเว็บเพิ่ม ลบ และแก้ไข โดยอาศัยความสามารถของ SQL ทำได้ในเวลาที่รวดเร็ว หากท่านมีประสบการในการใช้ Access และเคยใช้ Query ใน Access แล้ว การปรับปรุงด้วย SQL จะกลายเป็นเรื่องที่ง่าย เพราะตัว Query ใน Access นั้นสามารถแสดงคำสั่งในลักษณะของ SQL ได้ ซึ่งผมเองก็ไปดูจากตรงนั้นว่า จะใช้คำสั่ง SQL อย่างไร ถ้าใช้ Query เพิ่ม ลบ หรือแก้ไข
  2. แฟ้มข้อมูล member01.mdb เป็นแฟ้มที่สำคัญมาก ที่ตัวอย่างนี้ใช้ และเก็บในห้อง /cgi-bin ซึ่งมีโครงสร้างแฟ้ม ประกอบด้วยเขตข้อมูล 6 เขตข้อมูล
    1. รหัสสมาชิก ( ID ) มีขนาดเป็น AutoNumber ซึ่งเพิ่มได้อัตโนมัติ และไม่ซ้ำกันแน่นอน
    2. ชื่อสมาชิก ( NAME ) เตรียมไว้ 50 ตัวอักษร
    3. E-Mail สมาชิก ( EMAIL ) เตรียมไว้ 50 ตัวอักษร
    4. ชื่อเว็บ ( WEBNAME ) เตรียมไว้ 100 ตัวอักษร
    5. ที่อยู่เว็บ ( ADDRESS ) เตรียมไว้ 100 ตัวอักษร
    6. คำอธิบายเว็บ ( DESCRIB ) เตรียมไว้ 120 ตัวอักษร
  3. หากท่านจะนำโปรแกรมนี้ไปทดสอบ ในเว็บของท่านที่ webhostme.com ท่านต้อง Download แฟ้ม member01.mdb ไปไว้ในห้อง cgi-bin เพื่อทำให้โปรแกรมต่าง ๆ ในบทเรียนนี้ สามารถจัดการแฟ้มที่ได้เตรียมไว้นั้น
  4. บทเรียนนี้ใช้ หลักการของ SQL ทำการเพิ่ม ลบ และแก้ไข ในการปรับปรุงข้อมูลเป็นสำคัญ ซึ่งสังเกตุได้ว่า สั้น และง่าย แต่จำนวนแฟ้มในบทเรียนนี้ ก็ค่อนข้างเยอะ เพราะนับแล้วก็ได้ถึง 8 แฟ้มทีเดียว ซึ่งแต่ละแฟ้มล้วนมีหน้าที่ ที่อิสระ ชัดเจน และทำความเข้าใจตามได้ไม่ยาก .. เห็นด้วยไหมครับ
  5. สรุปแฟ้มที่ใช้ในบทเรียนนี้ ในกรณีที่ท่านงง และไม่แน่ใจ กับหน้าที่ของแต่ละแฟ้ม
    1. /cgi-bin/member01.mdb (แฟ้มข้อมูลหลัก ซึ่งเป็นแฟ้มเดียวที่เก็บข้อมูลในบทนี้) แฟ้มนี้เมื่อท่านส่งเข้าไปใน เว็บท่าน.webhostme.com แล้วก็เป็นอันเรียบร้อย แต่ก่อนส่งเข้าไป ท่านต้องใช้ MS Access 97 สร้างแฟ้ม member01.mdb ขึ้นมา โดยสร้าง table พร้อมกำหนด เขตข้อมูลให้เรียบร้อยก่อน ต้องเข้าใจเรื่อง MS Access 97 พอสมควร จึงจะทำความเข้าใจบทเรียนนี้ได้ อย่างไม่ยากนัก และไม่ต้องตกใจที่ member01.mdb ที่สร้างขึ้นมา ยังไม่มีข้อมูลอะไร ก็มีขนาดแฟ้มตั้ง 70000 ขึ้นไปแล้ว เป็นเรื่องปกติของ Microsoft ที่ header ของแฟ้มจะต้องมีขนาดใหญ่อย่างนี้ หละครับ
    2. /aspmbrad.htm (ส่งค่าให้ ASP เพื่อนำไปเพิ่มระเบียน)
    3. /aspmbrad.asp (รับค่าจาก form ใน html ไปเพิ่มระเบียนใหม่) ซึ่งใช้หลักการของ SQL ในการลบ
    4. /aspmbrdl.htm (ส่งค่าให้ ASP เพื่อนำไปเลือกลบระเบียน)
    5. /aspmbrdl.asp (รับค่าจาก form ใน html ไปลบระเบียนที่ต้องการ) ซึ่งใช้หลักการของ SQL ในการลบ
    6. /aspmbred.htm (ส่งค่าให้ ASP เพื่อนำไปเลือกแก้ไข)
    7. /aspmbred.asp (รับค่าจาก form ใน html ไปปรับปรุงแฟ้ม) ซึ่งใช้หลักการของ SQL ในการปรับปรุง
    8. /aspmbrls.asp (แสดงข้อมูลสมาชิกใหม่ 10 คนล่าสุด)
  6. บทเรียนนี้ไม่ได้เขียนให้ นำไปใช้ได้ทันที แต่เขียนให้ศึกษา และสามารถนำไปประยุกต์ ใช้กับงานอื่น ๆ ได้อีกมากมาย เช่น การทำระบบรับสมาชิก การห้องสะสม การทำ Search engine หรืออื่น ๆ อีกมากมาย ซึ่งมีรายละเอียดเยอะไปหมด และก็หวังว่า บทเรียนนี้ จะจุดประกายให้ท่าน สร้างเว็บดี ๆ ให้คนไทยได้ศึกษา เพราะ ผมสนับสนุนให้คนไทย เก่งกันทุกคน ไม่เคยสนับสนุนให้คนไทย เก่งแต่ลอก แล้วก็หยุดตรงคำว่าง ลอกเสร็จแล้ว เท่านั้น ผมจึงไม่เขียนบทเรียนที่สมบูรณ์ แต่เขียนเฉพาะบทเรียนเริ่มต้น ให้นำไปพัฒนาต่อ บทเรียนนี้ก็เช่นกัน

การเพิ่มสมาชิกใหม่
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 3 แฟ้มคือ
/cgi-bin/member01.mdb และ /aspmbrad.htm และ /aspmbrad.asp
1. /aspmbrad.htm ทำหน้าที่ส่งค่า ผ่าน form ให้กับ aspmbrad.asp โดยส่งข้อมูลไป 5 เขตข้อมูล
2. /aspmbrad.asp ทำหน้าที่รับค่ามาจาก aspmbrad.htm แล้ว เพิ่มระเบียนใหม่ในแฟ้ม member01.mdb
3. /cgi-bin/member01.mdb แฟ้มที่รองรับข้อมูลใหม่ที่มีการเพิ่มเข้ามา
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmbrad.htm Source code ของ /aspmbrad.htm
เพิ่มข้อมูลสมาชิกใหม่
ชื่อสมาชิก :
E-Mail :
ชื่อเว็บ :
ที่อยู่เว็บ :
คำอธิบายเว็บ :


Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Add new member</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
เพิ่มข้อมูลสมาชิกใหม่<br>
<form action=http://thaiall.webhostme.com/aspmbrad.asp method=post>
ชื่อสมาชิก : <input type="text" name=name size=40><br>
E-Mail : <input type="text" name=email size=40><br>
ชื่อเว็บ : <input type="text" name=webname size=40><br>
ที่อยู่เว็บ : <input type="text" name=address size=40 value="http://"><br>
คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br>
<input type=submit value="Add member"><input type=reset value=Reset>
</form>
</body></html>
Source code ของโปรแกรมเพิ่มระเบียน /aspmbrad.asp
<%
set connNews = server.createobject("ADODB.Connection")
connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
sql = "INSERT into member ( name, email, webname, address, describ ) SELECT "
sql = sql & " '" & request.form("name") & "' as name, " 
sql = sql & " '" & request.form("email") & "' as email, " 
sql = sql & " '" & request.form("webname") & "' as webname, " 
sql = sql & " '" & request.form("address") & "' as address, " 
sql = sql & " '" & request.form("describ") & "' as describ; "
set rsArticles = connNews.Execute(sql)
connNews.close
set connNews = nothing
%>
<body>
<b>Add new member</b><hr>
<a href=/aspmbrls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmbrad.htm>Add</a>,
<a href=/aspmbrdl.htm>Delete</a>,
<a href=/aspmbred.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การลบสมาชิก
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 3 แฟ้มคือ
/cgi-bin/member01.mdb และ /aspmbrdl.htm และ /aspmbrdl.asp
1. /aspmbrdl.htm ทำหน้าที่ส่งค่า ผ่าน form ให้กับ aspmbrdl.asp โดยส่งข้อมูลไป 1 เขตข้อมูล คือ รหัสสมาชิก
2. /aspmbrdl.asp ทำหน้าที่รับค่ามาจาก aspmbrad.htm แล้ว เลือกลบระเบียนในแฟ้ม member01.mdb
3. /cgi-bin/member01.mdb แฟ้มนี้จะมีระเบียน ที่ตรงตามเงื่อนไข ถูกลบทิ้งไป
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmbrdl.htm Source code ของ /aspmbrdl.htm
ลบข้อมูลสมาชิก
รหัสสมาชิกที่ต้องการลบ :

Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Delete member</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
ลบข้อมูลสมาชิก<br>
<form action=http://thaiall.webhostme.com/aspmbrdl.asp method=post>
รหัสสมาชิกที่ต้องการลบ : <input type="text" name=delid size="2"0><br>
<input type=submit value="Delete member"><input type=reset value=Reset>
</form>
</body></html>
Source code ของโปรแกรมลบระเบียน /aspmbrdl.asp
<%
set connNews = server.createobject("ADODB.Connection")
connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
sql = "DELETE * FROM member WHERE (member.id= " & request.form("delid") & ");"
set rsArticles = connNews.Execute(sql)
connNews.close
set connNews = nothing
%>
<body>
<b>Delete new member</b><hr>
<a href=/aspmbrls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmbrad.htm>Add</a>,
<a href=/aspmbrdl.htm>Delete</a>,
<a href=/aspmbred.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การแก้ไขสมาชิก
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 3 แฟ้มคือ
/cgi-bin/member01.mdb และ /aspmbred.htm และ /aspmbred.asp
1. /aspmbred.htm ทำหน้าที่ส่งค่า ผ่าน form ให้กับ aspmbred.asp โดยส่งข้อมูลไป 6 เขตข้อมูล
2. /aspmbred.asp ทำหน้าที่รับค่ามาจาก aspmbred.htm แล้ว เขียนทับระเบียนที่รหัสตรงกันในแฟ้ม member01.mdb
3. /cgi-bin/member01.mdb แฟ้มที่รองรับข้อมูลใหม่ ที่จะถูกเขียนทับในระเบียนที่มีรหัสตรงกับในแฟ้ม
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
ตัวอย่างฟอร์ม /aspmbred.htm Source code ของ /aspmbred.htm
แก้ไขข้อมูลสมาชิก
รหัสสมาชิก : (ต้องมีอยู่ในฐานข้อมูลแล้ว)
ชื่อสมาชิก :
E-Mail :
ชื่อเว็บ :
ที่อยู่เว็บ :
คำอธิบายเว็บ :

(ไม่ว่าข้อมูลเก่าเก็บอะไร จะเอาข้อมูลใหม่นี้ ไปทับทันที)
Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่
<html><title>Edit member</title>
<body bgcolor=#ffffdd><font face="microsoft sans serif">
แก้ไขข้อมูลสมาชิก<br>
<form action=http://thaiall.webhostme.com/aspmbred.asp method=post>
รหัสสมาชิก : <input type="text" name=id size="2"0> (ต้องมีอยู่ในฐานข้อมูลแล้ว)<br>
ชื่อสมาชิก : <input type="text" name=name size=40><br>
E-Mail : <input type="text" name=email size=40><br>
ชื่อเว็บ : <input type="text" name=webname size=40><br>
ที่อยู่เว็บ : <input type="text" name=address size=40 value="http://"><br>
คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br>
<input type=submit value="Edit member"><input type=reset value=Reset>
</form>
(ไม่ว่าข้อมูลเก่าเก็บอะไร จะเอาข้อมูลใหม่นี้ ไปทับทันที)
</body></html>
Source code ของโปรแกรมแก้ไขข้อมูล /aspmbred.asp
<%
set connNews = server.createobject("ADODB.Connection")
connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
sql = "UPDATE member set "
sql = sql & " member.name = '" & request.form("name") & "', " 
sql = sql & " member.email = '" & request.form("email") & "', " 
sql = sql & " member.webname = '" & request.form("webname") & "', " 
sql = sql & " member.address = '" & request.form("address") & "', " 
sql = sql & " member.describ = '" & request.form("describ") & "' "
sql = sql & " Where member.id = " &  request.form("id") & " ;"
set rsArticles = connNews.Execute(sql)
connNews.close
set connNews = nothing
%>
<body>
<b>Edit member</b><hr>
<a href=/aspmbrls.asp>Display last 10 members</a>
<br>Back to [
<a href=/aspmbrad.htm>Add</a>,
<a href=/aspmbrdl.htm>Delete</a>,
<a href=/aspmbred.htm>Edit</a> ]
</body>

ดูเฉพาะ Source code เท่านั้น

การพิมพ์ข้อมูลสมาชิกล่าสุด 10 คน
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 2 แฟ้มคือ
/cgi-bin/member01.mdb และ /aspmbrls.asp
1. /aspmbrls.asp ทำหน้าที่อ่านข้อมูลสมาชิก 10 คนสุดท้ายมาแสดง เท่านั้น
2. /cgi-bin/member01.mdb แฟ้มที่ให้ข้อมูล เพื่อนำไปทำรายงาน ของสมาชิก
Download แฟ้ม member01.mdb เพื่อนำไปทดสอบโปรแกรม ASP ที่เขียนในบทนี้ได้
และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/
Source code ของโปรแกรมแสดงข้อมูลสมาชิก /aspmbrls.asp
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
Set rec = Server.CreateObject("ADODB.Recordset")
sql = "select * from member order by member.id DESC;"
rec.Open sql, thaialldbaccess97
%>
<html><head><title>รายชื่อสมาชิกใหม่ 10 คน</title></head>
<body bgcolor="#ffffdd"><font face="microsoft sans serif">
รายชื่อสมาชิกใหม่ 10 คน (Display last 10 members)<hr>
<ul>
<%
i = 1
if Not rec.eof then rec.MoveFirst
do while Not rec.eof and i <= 10     
   response.write( "<b>รหัสสมาชิก</b> : " & rec("id") &"<br>")   
   response.write( "<b>ชื่อสมาชิก</b> : " & rec("name") &"<br>")
   response.write( "<b>E-mail</b> : " & rec("email") &"<br>")
   response.write( "<b>ชื่อเว็บ</b> : " & rec("webname") &"<br>")
   response.write( "<b>ที่อยู่เว็บ</b> : " & rec("address") &"<br>")
   response.write( "<b>คำอธิบายเว็บ</b> : " & rec("describ") &"<hr>")
   rec.MoveNext
   i = i + 1
loop
%>
</ul>
</body></html>
Click ที่นี่ เพื่อแสดงข้อมูลสมาชิกล่าสุด 10 คน
ดูเฉพาะ Source code เท่านั้น

แบบฝึกหัด
    ให้ทำตามโจทย์ต่อไปนี้
  1. ให้ copy แฟ้ม และโปรแกรม ไปทดสอบในเว็บของท่าน
  2. สร้างแฟ้มของท่านขึ้นมาใช้เอง และปรับรูปแบบของ โปรแกรม เพิ่ม ลบ และแก้ไขในแบบที่ท่านพอใจ
  3. สร้างรายงานที่เลือกข้อมูลสมาชิกเป็นหน้า หน้าละ 30 คนได้
  4. สร้างส่วนแสดงรายชื่อสมาชิกให้ยืดหยุ่น กว่านี้ เช่น เลือกหน้า หรือช่วงรหัสได้ เป็นต้น

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