• 締切済み

aspのセレクトボックスにDBのデータを表示する

お世話になっています。 現在、aspとSQLServerを使って一覧表を作成しています。 その一覧表を、大分類と中分類のセレクトボックスから 選択して、検索ボタンを押すと、SQLを作成して一覧表を表示する のですが、問題は、大分類を選択した後、その大分類で絞りこまれた 中分類を表示するのに少し時間がかかりすぎるのです。。 中分類はSQLServerのマスターからひろってくるのですが、SQLの 実行自体は1秒もかからないのですが、HTML上でセレクトボックスに 表示させると、すごく時間がかかるのです。テキストファイルから 読み込んだ大分類のセレクトボックスは表示が速いのに、 中分類を同じように速く表示させるには何か別の技術が必要 なのでしょうか? また、大分類のセレクトボックスのonChangeにSubmit()して、 ページを作成しなおしています。 よろしくお願いいたします。

みんなの回答

  • tsukachan
  • ベストアンサー率42% (202/470)
回答No.1

ソースの記述ミスでしょうね。 私は今まで起こった事がありません。 具体的に提示できる範囲で構わないのでSQL文とセレクトボックス表示部分のスクリプトを教えてくれませんか?

yumi_shin
質問者

補足

tsukachan様、ご返答ありがとうございます!!! SQL文とセレクトボックス表示部分のスクリプトは下記のとおりです。 見づらくて本当にすみません。 データベースの名称等を変更したので分かりづらい表示があるかも しれないのですが、分類名、bunrui,d_bunruiは大分類で、 中分類名、c_bunruiは中分類です。大分類はテキストファイルから 変数bunruiに入れており、("01 大分類名1,02 大分類名2・・"という 感じで入っている)その大分類のセレクトボックスで選択された左 2桁のコード部分をSQLの条件で検索し、絞られた結果を中分類 のセレクトボックスで表示させています。中分類は、絞り込んで 最大でも20件以内だと思います。このほかに年月、区分セレクトボックス等がありまして、それぞれコンボボックスが選択されるonChangeで Submit()しています。(そうしないと一覧表の方でRequest.form("") でデータを取得できないため) 稚拙なソースで大変恐縮ですが、ご教授の方よろしくお願いいたします。 <form name = "selform" method="POST"> <font size="2">分類名 : </font> <select name="fbunrui" onchange="submit()" target="sub" action = "select.asp"> <option selected value="<%= response.write (d_bunrui_name) %>"><%=response.write (d_bunrui_name) %></option> <p> <% for i = 1 to bunrui_cnt if bunrui(i-1) <> d_bunrui_name then %> <option value="<% response.write bunrui(i-1) %>"><% response.write bunrui(i-1) %></option> <p> <% end if next %> <input type="hidc_bunrui" name="bunrui" value="<% response.write (d_bunrui_name) %>"> </select> </form> </td> <td width="300"> <font size="2">中分類名 : </font> <select name="fc_bunrui" onchange="submit()"> <% '中分類コンボセット execSQL = "" execSQL = "select distinct sh.c_bunrui from dbname sh,中分類名称マスター km where (sh.kbn = '3') and (km.中分類コード = sh.c_bunrui) and (sh.d_bunrui = '" _ & left(d_bunrui_name,2) & "') order by c_bunrui" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open execSQL, Conn, 1, 1 count = rs.recordcount for i = 1 to count -1 if c_d_bunrui_name <> trim(rs("c_bunrui")) then %> <option value="<%response.write trim(rs("c_bunrui")) %>"><%response.write trim(rs("c_bunrui")) %></option> <p> <% else %> <option selected value="<%response.write (c_bunrui_name) %>"><%response.write (c_bunrui_name) %></option> <p> <% end if rs.movenext next rs.close set rs = nothing %> <input type="hidc_bunrui" name="bunrui" value="<% response.write (d_bunrui_name) %>"> <input type="hidc_bunrui" name="c_bunrui" value="<% response.write (c_d_bunrui_name) %>"> <input type="hidc_bunrui" name="nengetsu" value="<% response.write (left(nengetsu,4)&right(nengetsu,2)) %>"> </select> </form> </td>