元の三流解説は、
三流君ASP:小計・合計の表示、大昔の方法(笑)
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・
ソースコード
<%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>テストでテーブル内の全データを表示してみる</title> </head> <body> <h2>テストでテーブル内の全データを表示してみる</h2> Set rs = db.Execute("Select * From T_月別売上")<br> と、全ての項目を呼び出してみる。<br> <hr> <% 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '.Provider?プロバイダー?通信会社?じゃなくって 'データアクセスにはJet.OLEDB.4.0を使うことを設定 db.Provider = "Microsoft.Jet.OLEDB.4.0" '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す db.ConnectionString = Server.MapPath("db072.mdb") 'やっとデータベースを開ける db.open 'お約束のレコードセットの作成 T_月別売上から全項目(*)を指定 Set rs = db.Execute("Select * From T_月別売上") 'データの表示をテーブルで行う Response.Write "<TABLE Border='1'>" '見出しを(フィールド名を)そのまま書き込む Response.Write "<TR>" For Each fld_A In Rs.Fields 'フィールドのアイテムに対してループ Response.Write "<TH>" & fld_A.Name & "</TH>" '↑.Nameでフィールド名を表示する Next Response.Write "</TR>" 'お約束のEOFまでループは(データが無くなるまでループ)、 Do While rs.EOF = False 'レコードセットの.EOFがFalseの間 Response.Write "<TR>" '内容を表示する For Each fld_A In Rs.Fields 'フィールドのアイテムに対してループ Response.Write "<TD>" & fld_A.Value & "</TD>" '↑.Valueでフィールドの値を表示する Next Response.Write "</TR>" '次のレコードにポインタを移動する rs.MoveNext 'これを忘れると悲惨なことに、、、 Loop Response.Write "</TABLE>" 'テーブルは終わりです '開いていたレコードセットを閉じる rs.Close 'データベースも閉じようよ db.Close 'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど) Set db = Nothing %> <hr> 終了です。<br> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test072-1.asp← 実行する
ソースコード
<%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>上期(4~9月)の合計を計算・表示してみる</title> </head> <body> <h2>上期(4~9月)の合計を計算・表示してみる</h2> rs("売上" & n).Value<br> "売上" & nでフィールド名売上4..売上9を作成してアクセス<br> 自分で集計してみました。<br> g_kamiki = g_kamiki + rs("売上" & n).Value<br> <hr> <% 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '.Provider?プロバイダー?通信会社?じゃなくって 'データアクセスにはJet.OLEDB.4.0を使うことを設定 db.Provider = "Microsoft.Jet.OLEDB.4.0" '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す db.ConnectionString = Server.MapPath("db072.mdb") 'やっとデータベースを開ける db.open 'お約束のレコードセットの作成 T_月別売上から全項目(*)を指定 Set rs = db.Execute("Select * From T_月別売上") 'データの表示をテーブルで行う Response.Write "<TABLE Border='1'>" '見出しを表示する Response.Write "<TR>" Response.Write "<TH>商品名</TH>" For n = 4 To 9 '4月から9月と見出しを表示したいので Response.Write "<TH>" & n & "月</TH>" Next Response.Write "<TH>上期計</TH>" Response.Write "</TR>" 'お約束のEOFまでループは(データが無くなるまでループ)、 Do While rs.EOF = False 'レコードセットの.EOFがFalseの間 Response.Write "<TR>" '行を表示する Response.Write "<TD>" & rs("商品CD").Value & "</TD>" 'とりあえずコード g_kamiki = 0 '集計用の変数を初期化する For n = 4 To 9 'フィールドにフィールド名でアクセスする Response.Write "<TD>" & rs("売上" & n).Value & "</TD>" '↑"売上" & nでフィールド名売上4..売上9を作成してアクセス '自分で集計する g_kamiki = g_kamiki + rs("売上" & n).Value Next '上期の合計を表示する Response.Write "<TD>" & g_kamiki & "</TD>" Response.Write "</TR>" '次のレコードにポインタを移動する rs.MoveNext 'これを忘れると悲惨なことに、、、 Loop Response.Write "</TABLE>" 'テーブルは終わりです '開いていたレコードセットを閉じる rs.Close 'データベースも閉じようよ db.Close 'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど) Set db = Nothing %> <hr> 終了です。<br> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test072-2.asp← 実行する
ソースコード
<%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>小計(グループ)を計算・表示してみる</title> </head> <body> <h2>小計(グループ)を計算・表示してみる</h2> <hr> <% 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '.Provider?プロバイダー?通信会社?じゃなくって 'データアクセスにはJet.OLEDB.4.0を使うことを設定 db.Provider = "Microsoft.Jet.OLEDB.4.0" '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す db.ConnectionString = Server.MapPath("db072.mdb") 'やっとデータベースを開ける db.open 'お約束のレコードセットの作成 'T_月別売上から全項目(*)を指定、Order Byで商品コード順にする Set rs = db.Execute("Select * From T_月別売上 Order By 商品CD") 'データの表示をテーブルで行う Response.Write "<TABLE Border='1'>" '見出しを表示する Response.Write "<TR bgcolor=#E0FFFF>" Response.Write "<TH>商品名</TH>" For n = 4 To 9 '4月から9月と見出しを表示したいので Response.Write "<TH>" & n & "月</TH>" Next Response.Write "<TH>上期計</TH>" Response.Write "</TR>" '月別の小計・総合計を保存する配列を作成する Dim sum_group(12) 'グループ合計 Dim sum_all(12) '総合計 Dim sum_code 'グループ化のコード '総合計エリア、グループ合計を初期化する For n = 1 To 12 sum_group(n) = 0 sum_all(n) = 0 Next 'グループ化のコードを初期化する sum_code = Left(rs("商品CD").Value , 1) '先頭レコードの商品コード1桁目 'お約束のEOFまでループは(データが無くなるまでループ)、 Do While rs.EOF = False 'レコードセットの.EOFがFalseの間 'グループコードが変わったかチェックする If sum_code <> Left(rs("商品CD").Value , 1) Then '小計を表示する Response.Write "<TR bgcolor=#FFE0FF>" '行を表示する Response.Write "<TD>小計</TD>" g_kamiki = 0 '小計の上期集計用の変数を初期化する For n = 4 To 9 '4~9月 Response.Write "<TD>" & sum_group(n) & "</TD>" 'n月の値を表示 g_kamiki = g_kamiki + sum_group(n) '小計の上期のタメに計算 Next Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示 Response.Write "</TR>" '行の終わり '次のグループになるので、配列とCODEを初期化する sum_code = Left(rs("商品CD").Value , 1) '次のコードを代入 For n = 4 To 9 '小計値を初期化する sum_group(n) = 0 Next End If Response.Write "<TR>" '行を表示する Response.Write "<TD>" & rs("商品CD").Value & "</TD>" 'とりあえずコード g_kamiki = 0 '集計用の変数を初期化する For n = 4 To 9 'フィールドにフィールド名でアクセスする Response.Write "<TD>" & rs("売上" & n).Value & "</TD>" '↑"売上" & nでフィールド名売上4..売上9を作成してアクセス '自分で上期を集計する g_kamiki = g_kamiki + rs("売上" & n).Value '月別、グループ、総合計を計算する sum_group(n) = sum_group(n) + rs("売上" & n).Value 'グループ sum_all(n) = sum_all(n) + rs("売上" & n).Value '総合計 Next '上期の合計を表示する Response.Write "<TD>" & g_kamiki & "</TD>" Response.Write "</TR>" '次のレコードにポインタを移動する rs.MoveNext 'これを忘れると悲惨なことに、、、 Loop 'ループを抜けたら、最後の小計を表示する '小計を表示する Response.Write "<TR bgcolor=#FFE0FF>" '行を表示する Response.Write "<TD>小計</TD>" g_kamiki = 0 '小計の上期集計用の変数を初期化する For n = 4 To 9 '4~9月 Response.Write "<TD>" & sum_group(n) & "</TD>" 'n月の値を表示 g_kamiki = g_kamiki + sum_group(n) '小計の上期のタメに計算 Next Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示 Response.Write "</TR>" '行の終わり '総合計の表示(計算した総合計を表示する) Response.Write "<TR bgcolor=#FFFFE0>" '行を表示する Response.Write "<TD>総合計</TD>" g_kamiki = 0 '総合計の上期集計用の変数を初期化する For n = 4 To 9 '4~9月の値を表示する Response.Write "<TD>" & sum_all(n) & "</TD>" 'n月の値を表示 g_kamiki = g_kamiki + sum_all(n) '総合計の上期のタメに計算 Next Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示 Response.Write "</TR>" '行の終わり Response.Write "</TABLE>" 'テーブルは終わりです '開いていたレコードセットを閉じる rs.Close 'データベースも閉じようよ db.Close 'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど) Set db = Nothing %> <hr> 終了です。<br> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test072-3.asp← 実行する
↑コードの三流解説は、
三流君ASP:小計・合計の表示、大昔の方法(笑)
を見て、笑ってやってください。
ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・