[Access] 開始寫作SQL


阿瑟 發表



STEP1:【前言】
終於要開始了 : ), 阿得這次會告訴大家如何開始製作一個基本討論板所需的資料庫和製作一個討論列表。

STEP2:【建立資料庫】
請建立一個資料庫,接著建立table,所需欄位如下:
id (自動編號)
name (文字)
topic (文字)
ip (文字)
content (備忘)
replies (數字)
click (數字)
reply (數字)
ccdate (簡短日期 年/月/日)

STEP3:【連結資料庫】
現在阿得要告訴你們怎麼連結資料庫了, 在資料庫的同一個目錄下新增一個副檔名為.asp的文字檔案,並且開啟...開始打入一下的原始碼:

<%
Set cons = Server.CreateObject("ADODB.Connection")
DBmPath = Server.MapPath("資料庫名稱.mdb")
cons.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBmPath
set rsm = Server.CreateObject("ADODB.Recordset")
sql="Select *From 資料表名稱 order by ccdate desc"
rsm.Open sql, cons,1, 3
%>

討論板

<table>
<tr>
<td>
標題
</td>
<td>
名稱
</td>
<td>
回覆次數
</td>
<td>
點選次數
</td>
<td>
日期
</td>
</tr>
<%if rsm.eof=true then%>
<tr>
<td colspan=5>
抱歉, 目前沒有任何討論主題 </td>
</tr>

<%else%>
<%while rsm.eof=false%>
<tr>
<td>
<a href=viewmessage.asp?id=<%=rsm("id")%> target=_self><%=rsm("topic")%></a> </td>

<td>
<%=rsm("name")%> </td>

<td>
<%=rsm("replies")%> </td>

<td>
<%=rsm("click")%> </td>

<td>
<%=rsm("ccdate")%> </td>
</tr>
<%rsm.movenext%>
<%wend%>
<%end if%>
</table>


這是一個列出所有討論表題的asp程式,您必須將上面的資料庫名稱與資料表(TABLE)名稱依照自己的情況修改
小弟稍微講解一下:
  • order by ccdate desc,order by ccdate就是按照時間順序排列,desc就是由大排到小,如果改成asc就是由小排到大
  • if rsm.eof=true then,這是判斷,rsm.eof就是資料表尾端 (一開啟就是尾端代表沒有資料),如果沒有資料的話觸發某某事件(在此例中是顯示沒有討論主題)
  • while rsm.eof=false,這是while迴圈,如果還沒有到資料表尾端的話那就繼續讀取
  • %=rsm("name")%,就是列出這列資料name這個欄位裡面的資料
  • rsm.movenext,代表往下換一列資料 (資料庫如果有資料不是一列一列的嗎 ^_^?)
  • wend,while迴圈的結尾

  • 其他的就靠您自己去閱讀程式碼然後去了解了,其實asp算是很容易懂的程式。
    這邊因為我們還沒有撰寫viewmessage.asp,所以上面的viewmessage.asp?id=xxx那一段晚一點阿得會再講解,這邊阿得用id欄位 (自動編號),因為這樣的話才不會出錯,因為每一列資料的這個欄位的資料都是獨一的。
    原理很簡單,當資料庫開始的時候是第一筆資料,您就一直把需要的欄位資料讀取出來,然後一列一列讀取。
    由於現在資料庫沒有東西,所以您會一直出現沒有討論主題,您可以自己keyin一些資料然後再測試看看。
    STEP4:【結語】
    這是一支很基本的ASP+Access程式,現在您知道如何讀取資料了,希望大家都能夠吸收^_^,學會了SQL以後其實SQL是一個很棒的工具喔。

    最後更新日期: 3/30/2002 9:34:16 PM