access 練習一:
建立一簡單資料庫的添加、顯示、查詢功能實現 註:[採用access2000+asp,資料庫:customer.mdb(欄位: 公司名(字元型)、電話(資料型)、傳真(資料型)、類別(字元型)、連絡人(字元型)、備忘(字元型))]
<在winxp pro+iis5.1環境下完成測試>
頁面代碼如下:
---add.html----
<html>
<head>
<title>添加資料庫記錄</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font size="5">添加資料庫記錄</font></p>
<form method="post" action="adddatabase.asp">
<div align="center">
<table width="46%" border="0">
<tr>
<td width="28%">
<div align="right">公司名:</div>
</td>
<td width="72%">
<input type="text" name="CompanyName">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">電話:</div>
</td>
<td width="72%">
<input type="text" name="Tel">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">傳真: </div>
</td>
<td width="72%">
<input type="text" name="Fax">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">類別:</div>
</td>
<td width="72%">
<input type="text" name="Classes">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">連絡人:</div>
</td>
<td width="72%">
<input type="text" name="Cname">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">備忘:</div>
</td>
<td width="72%">
<input type="text" name="Backups">
</td>
</tr>
<tr>
<td width="28%">
<div align="right"> </div>
</td>
<td width="72%">
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
---adddatabase.asp---
<html>
<head>
<title>添加資料庫記錄</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font size="5">添加資料庫記錄</font></p>
<form method="post" action="adddatabase.asp">
<div align="center">
<table width="46%" border="0">
<tr>
<td width="28%">
<div align="right">公司名:</div>
</td>
<td width="72%">
<input type="text" name="CompanyName">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">電話:</div>
</td>
<td width="72%">
<input type="text" name="Tel">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">傳真: </div>
</td>
<td width="72%">
<input type="text" name="Fax">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">類別:</div>
</td>
<td width="72%">
<input type="text" name="Classes">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">連絡人:</div>
</td>
<td width="72%">
<input type="text" name="Cname">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">備忘:</div>
</td>
<td width="72%">
<input type="text" name="Backups">
</td>
</tr>
<tr>
<td width="28%">
<div align="right"> </div>
</td>
<td width="72%">
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="reset" value="Reset">
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
---addnewdatabase.asp---
<%
rs.AddNew
rs("公司名") = CompanyName
rs("電話") = Tel
rs("傳真") =Fax
rs("類別") = Classes
rs("連絡人")=Cname
rs("備忘")=Backups
rs.Update
%>
---viewdatabase.asp---
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Dbpath '建立與資料庫的串連,與上同。
SQL="select * from customers Order By 公司名 DESC"
SET CustomerList=dbconnection.EXECUTE(sql)
%>
<html>
<body>
<FONT SIZE="5"><center>資料庫記錄</center></FONT>
<CENTER>
<TABLE BORDER=1>
<tr>
<td>公司名</td>
<td>電話</td>
<td>傳真</td>
<td>類別</td>
<td>連絡人</td>
<td>備忘</td>
</tr>
<% DO WHILE NOT CustomerList.EOF
'檢測記錄是否到了最後一條。EOF表示End of File。
%>
<TR>
<TD><% =CustomerList("公司名") %></TD>
<TD><% =CustomerList("電話") %></TD>
<TD><% =CustomerList("傳真") %></TD>
<TD><% =CustomerList("類別") %></TD>
<TD><% =CustomerList("連絡人") %></TD>
<TD><% =CustomerList("備忘") %></TD>
</TR>
<%
CustomerList.movenext
loop
'如果還沒有到最後一條則指標移動到下一條。用Do While ... Loop迴圈逐一取得所有的記錄。
%>
</TABLE>
</CENTER>
<center>
<input type="button" value="添加資料">
</center>
</BODY>
</HTML>
===================
所出現問題解決方案:
1.
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Dbpath '建立與資料庫的串連,與上同。
SQL="select * from customers Order By 公司名 DESC"
SET CustomerList=dbconnection.EXECUTE(sql)
%>
1).SQL="select * from customers Order By 公司名 DESC",當中若欄位名“公司名”寫錯,如寫成“公司”,則出現如下錯誤提示:
錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 參數不足,期待是 1。
/viewdatabase.asp, 第 6 行
把欄位名改正與資料庫欄位正確的欄位名。這樣可正常顯示正確的資訊,如在用到網路豬瀏覽器時,會無法顯示出預設項的 add.html 頁面。原因不清楚
而在Mircrosoft Internet Explorer 和MyIe 以及Firefox瀏覽器時可以正常顯示到預期結果。
2.
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "customers", dbconnection, adOpenDynamic,3
%>
1).adOpenDynamic,3
當以上的這個語句缺少時,將會得到以下結果:
錯誤類型:
ADODB.Recordset (0x800A0CB3)
目前記錄集不支援更新。這可能是提供者的限制,也可能是選定鎖定類型的限制。
/adddatabase.asp, 第 26 行
這樣看來Recordset 設定值當中, “adOpenDynamic,3” 同樣地不可缺少。當然這當中的“3”含義應該是:當前資料記錄唯讀,可自由移動。換成"2"也可以,而換成“1”或者不用,將不能正常顯示預期結果
會顯示成如上邊的錯誤類型:
ADODB.Recordset (0x800A0CB3)
目前記錄集不支援更新
==========================================================
摘錄: sql="select * from 使用者 where 帳號='"&zh&"' or 姓名='"&name&"'"
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
1,1是一般的查詢!3,3是可以分頁的!2,2我沒用過!
===============================================