出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[4481] 同一ページに初期全部表示と検索表示 |
投稿者:ビバジャイアンツ!さん 2004/07/03 21:31:26 |
下記のような、競馬のデータを扱うデータベースを自作しています。今の状態ですと、全部のデータは表示されますが、検索によるデータの表示が出来ません。具体的な目的は、このページが@初期起動時は全て表示A検索ボタンによる抽出表示 の2点が出来るページにすることです。自分で試みたのですが、どうしても、@かA のどちらかのみしか出来ません。VBAですと、最初からデータが全て表示されている中で、 フォーム名.filter=抽出条件 フォーム名.filteron=True で行うことが出来ます。ですが、まだ初心者であるせいか、ASPで行うことが出来ません。どうか、ASPのベテランの方、よきアドバイスをお願いします。 ●記述 <%@ LANGUAGE="VBScript" %> <% Set cnc =Server.CreateObject("ADODB.Connection")'初期競馬日程全部表示 cnc.open"UMA" set rstTK =Server.createObject("ADODB.Recordset") '月基本週日付 rstTK.Open "月基本週日付データ", cnc, adOpenKeyset, adLockOptimistic set rstKH =Server.createObject("ADODB.Recordset") '基本日付 rstKH.Open "基本日付データ", cnc, adOpenKeyset, adLockOptimistic set rstRM =server.createObject("ADODB.Recordset") 'レース名 rstRM.Open "レース名データ", cnc, adOpenKeyset, adLockOptimistic set rstRJ =Server.CreateObject("ADODB.Recordset") 'レース順 rstRJ.Open "レース順データ", cnc, adOpenKeyset, adLockOptimistic set rstSB =Server.createObject("ADODB.Recordset") '総合馬場 rstSB.Open "総合馬場データ", cnc, adOpenKeyset, adLockOptimistic set rstBJ =Server.createObject("ADODB.Recordset") '馬場状態 rstBJ.Open "馬場状態データ", cnc, adOpenKeyset, adLockOptimistic set rstGD =server.createObject("ADODB.Recordset") 'グレードデータ rstGD.Open "グレードデータ", cnc, adOpenKeyset, adLockOptimistic Set rst =Server.CreateObject("ADODB.Recordset") '競馬日程全部表示 strSQL="Select * from 競馬日程 where レース年代日付 is not null order by レース年代日付 " rst.Open strSQL, cnc, adOpenstatic ,adLockOptimistic %> <html> <head> <title>競馬成績検索</title> <body> <Marquee BGCOLOR="RED"><b><I>競馬日程/</I></b><%= rst.recordcount %>件</Marquee><br> <form action="検索競馬日程.asp" method="POST" > <table> <tbody><tr> <td>日付:</td><td><input type="text" name="年代日付" value=""size=15 >曜日:<input type="text" name="曜日" value=""size=2></td><tr> <td>R順:</td><td><select name="R順" > <option><%="" %> <% lnr=0 do until lnr=rstRJ.recordcount lnr=lnr+1 %> <option><%= rstRJ("レース順") %> <% rstRJ.Movenext Loop %></select></td><tr> <td>レース名:</td><td><select name="レース名" > <option><%="" %> <% lng=0 do until lng=rstRM.recordcount lng=lng+1 %> <option><%= rstRM("レース名") %> <% rstRM.Movenext Loop %></select></td><tr> <td>総合馬場:</td><td><select name="総合馬場" size=1> <option><%="" %> <% lnj=0 do until lnj=rstSB.recordcount lnj=lnj+1 %> <option><%= rstSB("総合馬場") %> <% rstSB.Movenext Loop %></select> 状態:<select name="状態" > <option><%="" %> <% lnr=0 do until lnr=rstBJ.recordcount lnr=lnr+1 %> <option><%= rstBJ("馬場状態") %> <% rstBJ.Movenext Loop %></select></td> </tr> </tbody><br></table> <input type="submit" value="↓検索" ><input type="reset" value="↑クリア"><br> </form> <% Response.write"<TABLE BORDER=1 BGCOLOR=#ffffff CELLSPACING=0>" Response.write"<thead><tr>" Response.write"<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >競馬成績</th>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >年代日付</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >年代</TH>" Response.write"<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >曜日</th>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >月基本週日付</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >基本日付</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >R順</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >レース名</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >総合馬場</TH>" Response.Write "<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 >状態</TH>" Response.Write "</tr></thead>" Do Until rst.EOF or line >20 %> <% rstTK.filter="[月基本週日付ID]=" & rst("月基本週日付ID") %> <% rstKH.filter="[基本日付ID]=" & rst("基本日付ID") %> <% rstRJ.filter="[レース順ID]=" & rst("レース順ID") %> <% rstRM.filter="[レース名ID]=" & rst("レース名ID") %> <% rstSB.filter="[総合馬場ID]=" & rst("総合馬場ID") %> <% rstBJ.filter="[馬場状態ID]=" & rst("馬場状態ID") %> <tbody><form action="競馬成績.asp" method="POST"> <td><input type="submit" value="競馬成績" size=5></td> <td><font color="Red"><%= rst("レース年代日付") %></font></td> <td><%= rst("年代") %></td> <td><%= rst("曜日") %></td> <td><%= rstTK("月基本週日付") %></td> <td><%= rstKH("基本日付") %></td> <td><%= rstRJ("レース順") %></td> <td><b><%= rstRM("レース名") %></b></td> <td><H6><%= rstSB("総合馬場") %></H></td> <td align=center><%= rstBJ("馬場状態") %></td> <input type=hidden name="data1" value=<%= rst("競馬日程ID") %> size=5> </form> <% rst.MoveNext line=line+1 Loop %> </tbody></table> <% rstSB.close rstBJ.close rstRM.close rstRJ.close rstKH.close rstTK.close set rstRM=nothing set rstSB=nothing set rstBJ=nothing set rstRJ=nothing set rstTK=nothing set rstKH=nothing %> <%= rst.absoluteposition %>件目/<%= rst.recordcount %>件<br> <%= Session("page") %>ページ目/ <%= rst.pagecount %>ページ <% rst.close set rst=nothing cnc.close set cnc=nothing %> </body> </html> |
[4486] Re:同一ページに初期全部表示と検索表示 |
投稿者:Lightningさん 2004/07/05 10:18:12 |
勘違いだったらすいません。 もしかして、動的に絞込みを行うってことですか? だとしたらASPでは無理かもー 全部表示と検索結果表示をーってことだけなら 普通にSQLを二回発行するか、全部表示のSQLに対してifでの切り分けを行い検索文字列にヒットするものを表示すればいいのでは? |
[4487] Re:同一ページに初期全部表示と検索表示 |
投稿者:ビバジャイアンツ!さん 2004/07/05 11:39:52 |
> 勘違いだったらすいません。 > > もしかして、動的に絞込みを行うってことですか? > だとしたらASPでは無理かもー > > 全部表示と検索結果表示をーってことだけなら > 普通にSQLを二回発行するか、全部表示のSQLに対してifでの切り分けを行い検索文字列にヒットするものを表示すればいいのでは? おそらく、If文で行うのであると思うんですが、どの辺りに記述すればよいのかが把握できないのです。 <% If Isnull(Request.Form("検索文字入力箇所")) or Request.Form("検索文字入力箇所") <>"" Then 全部表示記述 Elseif Not Isnull(Request.Form("検索文字入力箇所")) Then 検索表示記述 end if 以降、同様%> すみません。以前にこう行ったつもりだったのですが、うまくいかなくて困っていました。ですが、先ほどもう一度記述したら、うまくいってしまいました。申し訳ありません、Lightningさん。ところで、動的に絞込みを行うということは、具体的にどういうことでしょうか。 都合の良い時間でよろしいですから、この後のコメントに書き込みをお願いします。 |
[4488] Re:同一ページに初期全部表示と検索表示 |
投稿者:Lightningさん 2004/07/05 12:10:08 |
> > 勘違いだったらすいません。 > > > > もしかして、動的に絞込みを行うってことですか? > > だとしたらASPでは無理かもー > > > > 全部表示と検索結果表示をーってことだけなら > > 普通にSQLを二回発行するか、全部表示のSQLに対してifでの切り分けを行い検索文字列にヒットするものを表示すればいいのでは? > > おそらく、If文で行うのであると思うんですが、どの辺りに記述すればよいのかが把握できないのです。 > <% If Isnull(Request.Form("検索文字入力箇所")) or Request.Form("検索文字入力箇所") <>"" Then > 全部表示記述 > Elseif Not Isnull(Request.Form("検索文字入力箇所")) Then > 検索表示記述 > end if > 以降、同様%> > すみません。以前にこう行ったつもりだったのですが、うまくいかなくて困っていました。ですが、先ほどもう一度記述したら、うまくいってしまいました。申し訳ありません、Lightningさん。ところで、動的に絞込みを行うということは、具体的にどういうことでしょうか。 > 都合の良い時間でよろしいですから、この後のコメントに書き込みをお願いします。 いや、まぁ、どちらも動的ではあるんですが、ASPを使うと一度サーバーへ情報を送る必要があるので、JavaScriptなどのように即時性は低いっすってことです。 もしかして、同じASPで全部表示と検索表示をする。という意味でしょうか? それであれば、DBへのSQLの発行時にWhereを付けるかどうかをRequest.Formの状況で切り分けてみるだけでできますよ。 |
[4489] Re:同一ページに初期全部表示と検索表示 |
投稿者:ビバジャイアンツ!さん 2004/07/05 13:43:10 |
> > > 勘違いだったらすいません。 > > > > > > もしかして、動的に絞込みを行うってことですか? > > > だとしたらASPでは無理かもー > > > > > > 全部表示と検索結果表示をーってことだけなら > > > 普通にSQLを二回発行するか、全部表示のSQLに対してifでの切り分けを行い検索文字列にヒットするものを表示すればいいのでは? > > > > おそらく、If文で行うのであると思うんですが、どの辺りに記述すればよいのかが把握できないのです。 > > <% If Isnull(Request.Form("検索文字入力箇所")) or Request.Form("検索文字入力箇所") <>"" Then > > 全部表示記述 > > Elseif Not Isnull(Request.Form("検索文字入力箇所")) Then > > 検索表示記述 > > end if > > 以降、同様%> > > すみません。以前にこう行ったつもりだったのですが、うまくいかなくて困っていました。ですが、先ほどもう一度記述したら、うまくいってしまいました。申し訳ありません、Lightningさん。ところで、動的に絞込みを行うということは、具体的にどういうことでしょうか。 > > 都合の良い時間でよろしいですから、この後のコメントに書き込みをお願いします。 > > いや、まぁ、どちらも動的ではあるんですが、ASPを使うと一度サーバーへ情報を送る必要があるので、JavaScriptなどのように即時性は低いっすってことです。 > > もしかして、同じASPで全部表示と検索表示をする。という意味でしょうか? > それであれば、DBへのSQLの発行時にWhereを付けるかどうかをRequest.Formの状況で切り分けてみるだけでできますよ。 上記の自分の記述よりも簡単な記述になるんですか?それであればご教授願います。 VBAでやっていたのは、コマンドボタンで下記の例のような記述です。で、ASPでのsubmitボタンで行いたかったのですが、うまく記述できなかったのです。 Private Sub 条件検索_Click() Dim strflt As String strflt = "" If Not IsNull(Me.騎手検索) Then If IsNull(strflt) Or strflt = "" Then strflt = "([騎手]='" & Me.騎手検索 & "')" Else strflt = strflt & "and([騎手]='" & Me.騎手検索 & "')" End If End If If Not IsNull(Me.性別検索) Then If IsNull(strflt) Or strflt = "" Then strflt = "([男女ID]=" & Me.性別検索 & ")" Else strflt = strflt & "and([男女ID]=" & Me.性別検索 & ")" End If End If If Not IsNull(Me.在住検索) Then If IsNull(strflt) Or strflt = "" Then strflt = "([在住ID]=" & Me.在住検索 & ")" Else strflt = strflt & "and([在住ID]=" & Me.在住検索 & ")" End If End If If Not IsNull(Me.登録検索) Then If IsNull(strflt) Or strflt = "" Then strflt = "([登録ID]=" & Me.登録検索 & ")" Else strflt = strflt & "and([登録ID]=" & Me.登録検索 & ")" End If End If If Not IsNull(strflt) Then With Me .Filter = strflt .FilterOn = True End With End If If Me.Recordset.RecordCount = 0 Then MsgBox "データは一件もありません。" With Me .Filter = strflt .FilterOn = True End With End End If |
[4511] Re:同一ページに初期全部表示と検索表示 |
投稿者:Lightningさん 2004/07/09 14:45:22 |
別の方に書いた気がしますけど・・・ 検索条件をSQLに反映させると簡単に検索できます。 |
[4512] Re:同一ページに初期全部表示と検索表示 |
投稿者:ビバジャイアンツ!さん 2004/07/10 1:30:38 |
> 別の方に書いた気がしますけど・・・ > > 検索条件をSQLに反映させると簡単に検索できます。 すみません。これより前の記述で解決しました。ありがとうございます。 |
TreeBBS For ASP V.0.1.3 |