1.5 テーブルのデータを表示する。
■テーブルのデータの一覧表示
リスト1.9 select.asp
01 <%@ LANGUAGE="VBScript" %>
02 <% Option Explicit %>
03 <HTML>
04 <HEAD>
05 <TITLE>select.asp</TITLE>
06 </HEAD>
07 <BODY>
08 <%
09 '定数を定義します
10 Const FOR_DEBUG = "<BR>Debug(select.asp): "
11 Const DATASOURCE = "aspZADO"
12
13 '変数を定義します
14 Dim objConn,objRst,strSQL
15
16 'データベースへのコネクションを設定します
17 Set objConn = Server.CreateObject("ADODB.Connection")
18 'データベースを開きます
19 objConn.Open DATASOURCE
20
21 'テーブルtblQuestionの全フィールドを選択するSQL文を定義します
22 strSQL = "SELECT * FROM tblQuestion"
23 'レコードセットオブジェクトを設定します
24 Set objRst = Server.CreateObject("ADODB.Recordset")
25 'SQL文を実行し、結果をレコードセットobjRstに設定します
26 objRst.Open strSQL, objConn, 1, 1
27
28 'レコードセットobjRstのすべてのレコードを表示します
29 Do While Not objRst.EOF
30 '1つのレコードの内容を表形式で表示します
31 %>
32 <TABLE BORDER=1>
33 <TR>
34 <TD>ID</TD>
35 <TD><%=objRst("ID")%></TD>
36 </TR>
37 <TR>
38 <TD>Q1</TD>
39 <TD><%=objRst("Q1")%></TD>
40 </TR>
41 <TR>
42 <TD>Q21</TD>
43 <TD><%=objRst("Q21")%></TD>
44 </TR>
45 <TR>
46 <TD>Q22</TD>
47 <TD><%=objRst("Q22")%></TD>
48 </TR>
49 <TR>
50 <TD>Q23</TD>
51 <TD><%=objRst("Q23")%></TD>
52 </TR>
53 <TR>
54 <TD>Q24</TD>
55 <TD><%=objRst("Q24")%></TD>
56 </TR>
57 <TR>
58 <TD>Q24txt</TD>
59 <TD><%=objRst("Q24txt")%></TD>
60 </TR>
61 <TR>
62 <TD>Q3</TD>
63 <TD><%=objRst("Q3")%></TD>
64 </TR>
65 </TABLE>
66 <%
67 '次のレコードに移動します
68 objRst.MoveNext
69 Loop
70
71 objRst.Close
72 objConn.Close
73 %>
74 </BODY>
75 </HTML>
図1.12
罫線内に表示するデータがNULL値だと、図1.12のように罫線が欠落する。そこで、次のように変数の直後に半角のスペースを1個挿入しておきます。
39 <TD><%=objRst("Q1")%> </TD>
そのように修正したファイルをselect2.aspファイルとします。このselect2.aspファイルにアクセスすると図1.13のように正常に表示されます。
図1.13
図1.13で最も新しいレコードから順に表示するように変更します。IDフィールドの値をキーとして逆順に表示します。リスト1.9の22行目を
22 strSQL = "SELECT * FROM tblQuestion"
から、
22 strSQL = "SELECT * FROM tblQuestion ORDER BY ID DESC"
に変更します。このファイルをselect3.aspとします。結果は、図1.14のようになります。
図1.14
■フィールドを横方向に表示する
リスト1.10
01 <%@ LANGUAGE="VBScript" %>
02 <% Option Explicit %>
03 <HTML>
04 <HEAD>
05 <TITLE>select4.asp</TITLE>
06 </HEAD>
07 <BODY>
08 <%
09 '定数を定義します
10 Const FOR_DEBUG = "<BR>Debug(select4.asp): "
11 Const DATASOURCE = "aspZADO"
12
13 '変数を定義します
14 Dim objConn,objRst,strSQL
15
16 'データベースへのコネクションを設定します
17 Set objConn = Server.CreateObject("ADODB.Connection")
18 'データベースを開きます
19 objConn.Open DATASOURCE
20
21 'テーブルtblQuestionの全フィールドを選択するSQL文を定義します
22 strSQL = "SELECT * FROM tblQuestion ORDER BY ID DESC"
23 'レコードセットオブジェクトを設定します
24 Set objRst = Server.CreateObject("ADODB.Recordset")
25 'SQL文を実行し、結果をレコードセットobjRstに設定します
26 objRst.Open strSQL, objConn, 1, 1
27 %>
28 <TABLE BORDER=1>
29 <TR>
30 <TD>ID</TD>
31 <TD>Q1</TD>
32 <TD>Q21</TD>
33 <TD>Q22</TD>
34 <TD>Q23</TD>
35 <TD>Q24</TD>
36 <TD>Q24txt</TD>
37 <TD>Q3</TD>
38 </TR>
39 <%
40 'レコードセットobjRstのすべてのレコードを表示します
41 Do While Not objRst.EOF
42 '1つのレコードの内容を表形式で表示します
43 %>
44 <TR>
45 <TD><%=objRst("ID")%> </TD>
46 <TD><%=objRst("Q1")%> </TD>
47 <TD><%=objRst("Q21")%> </TD>
48 <TD><%=objRst("Q22")%> </TD>
49 <TD><%=objRst("Q23")%> </TD>
50 <TD><%=objRst("Q24")%> </TD>
51 <TD><%=objRst("Q24txt")%> </TD>
52 <TD><%=objRst("Q3")%> </TD>
53 </TR>
54 <%
55 '次のレコードに移動します
56 objRst.MoveNext
57 Loop
58 %>
59 </TABLE>
60 <%
61 objRst.Close
62 objConn.Close
63 %>
64 </BODY>
65 </HTML>
図1.15