可能很多在使用access的朋友都沒(méi)有打開過(guò)Access的系統(tǒng)內(nèi)置表,這篇文章可以幫助大家簡(jiǎn)單了解下系統(tǒng)內(nèi)置表。
程序代碼
<%sqlcmd="select name from [msysobjects] where type=1 and flags=0"%>
用這條語(yǔ)句就可以取得Access數(shù)據(jù)庫(kù)中所有表,但需要設(shè)置讀取MSysObjects表的權(quán)限,否則會(huì)出現(xiàn)“不能讀取記錄;在 'MSysObjects'上沒(méi)有讀取數(shù)據(jù)權(quán)限”的錯(cuò)誤提示。
office 2003設(shè)置:工具 -> 選項(xiàng) -> 視圖 -> 勾選隱藏對(duì)象、系統(tǒng)對(duì)象。工具 -> 安全 -> 用戶與組的權(quán)限 ,在對(duì)象名稱中選定 MSysObjects ,然后權(quán)限中設(shè)置其讀取權(quán)限。
office 2007設(shè)置:?jiǎn)螕糇笊辖菆D標(biāo) -> Access選項(xiàng) -> 當(dāng)前數(shù)據(jù)庫(kù) -> 導(dǎo)航 -> 導(dǎo)航選項(xiàng) -> 勾選顯示隱藏對(duì)象,顯示系統(tǒng)對(duì)象。數(shù)據(jù)庫(kù)工具選項(xiàng)卡 -> 用戶和權(quán)限 -> 用戶與組權(quán)限,對(duì)象類型選擇表,對(duì)象名稱選定MSysObjects,然后勾選“讀取數(shù)據(jù)”權(quán)限
還有一種方法可以實(shí)現(xiàn)讀取Access數(shù)據(jù)庫(kù)中所有表:
程序代碼
<%
set rs=conn.openSchema(20)'返回包含模式信息的 Recordset 對(duì)象
rs.filter="table_type='table'"'篩選table_type為table類型的數(shù)據(jù)表,其他類型為系統(tǒng)內(nèi)置表
do while not rs.eof
response.write(rs("TABLE_NAME"))'用recordset記錄集獲取列名為table_name的數(shù)據(jù)
response.Write("<br />")
rs.movenext:loop
%>
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注