出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

ACCESSデータをプルダウンで検索し、表示する   なおさん [2003/06/17 14:02:07] [3423]
  Re:ACCESSデータをプルダウンで検索し、表示する   YasNet(管理人)さん [2003/06/18 8:49:21] [3425]
    Re:ACCESSデータをプルダウンで検索し、表示する   なおさん [2003/06/18 9:26:59] [3426]
      Re:ACCESSデータをプルダウンで検索し、表示する   なおさん [2003/06/18 16:38:25] [3429]

[3423] ACCESSデータをプルダウンで検索し、表示する
投稿者:なおさん 2003/06/17 14:02:07
プログラムの理解ができず苦しんでます。
本を頼りにやっていますが、応用がきかないのでギブアップしそうです。 教えていただけますか?

ACCESSのデータベースを検索して呼び出し、一覧表を表示させるのですが、下記に記載したプログラムでは検索フォームに手入力する方法です。
これをプルダウンにするにはどうしたらよいのでしょうか?

ACCESSのデータには、「商品名」「コード」「価格」があり、それぞれにデータが入っています。
ODBC名は「odbcmdb」
ACCESSのファイル名は「data1.mdb」
ACCESSのテーブル名は「table1」
です。

現在のプログラムでは「商品名」と「コード」のいづれかを手入力し、「検索実行」ボタンで検索し、結果を一覧で表示するようになっています。
このプログラムを次のように変更したいのですが、、
・同じテーブルの「商品名」のデータをプルダウンで呼び出して選択し、検索ボタンで検索し、結果を一覧で表示させるように。
・もうひとつ「コード」でも同じように検索・表示するようにしたいです。

********* 現在のプログラム **********
<%
<!------データ接続--------->
Dim ObjConn,StrSQL,ObjRS
Set ObjConn = Server.CreateObject("ADODB.connection")
ObjConn.Open "odbcmdb"
StrSQL = "select * from table1"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
%>

<!-- 検索フォーム定義 -->
<form method="POST">
<table>
<tr>
<td><input type="text" name="t1">
</td>
<td><input type="submit" value="検索実行">
</td>
</tr>
</table>
</form>

<%
Key=Request.Form("t1")
%>

<%
<!----データ接続、検索------>
Set ObjConn = Server.CreateObject("ADODB.connection")
ObjConn.Open "odbcmdb"
StrSQL = "SELECT * FROM table1" & _
" WHERE (商品名 LIKE '%" & Key & "%')" & _
" or (コード LIKE '%" & Key & "%')"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
%>

<%
if Key <> "" then

<table border="1">

End if

%>
<%
<!---最後のデータを処理するまで繰り返し--->
Do until ObjRS.EOF
if Key = "" then Exit Do
%>
<tr>
<!-- 「商品名」〜を表示します -->
<td><%=ObjRS("商品名")%></td>
<td><%=ObjRS("コード")%></td>
<td><%=ObjRS("価格")%></td>
</tr>
<%
<!---次のデータに移動--->
ObjRS.MoveNext
Loop
%>
</table>

***************************************

シロウトの考えでは、
<input type="text" name="t1">の部分を
<select name="">に変更したりしてみたのですがうまくいきません。
そんなに単純ではないですね・・
意外と本に載っていないので困っています。
どの部分をどういう風に変えればいいのか、よろしくお願いします。


[3425] Re:ACCESSデータをプルダウンで検索し、表示する
投稿者:YasNet(管理人)さん 2003/06/18 8:49:21
こんにちは YasNetです。

考え方は良いと思いますよ。
ASPというより、HTMLの構文をきちんと見直したほうがよいのでは?
<select name="t1">
<option value="AAA">表示名A</option>

<option value="ZZZ">表示名Z</option>
</select>

こんな感じで代用可能かと・・・
イメージが違うかな・・・違ってたらすみません

では〜

> シロウトの考えでは、
> <input type="text" name="t1">の部分を
> <select name="">に変更したりしてみたのですがうまくいきません。
> そんなに単純ではないですね・・
> 意外と本に載っていないので困っています。
> どの部分をどういう風に変えればいいのか、よろしくお願いします。
>
>

[3426] Re:ACCESSデータをプルダウンで検索し、表示する
投稿者:なおさん 2003/06/18 9:26:59
YasNetさん、有難うございます。
でも、プルダウンの中身はデータベースを見にいくようにしたいのです。
それでちょっと作ってみたら、プルダウンが一つだけだとうまくいきました。
ただ、もうひとつ「商品コード」のプルダウンを作り、いづれかで検索しなくてはいけなくて、そうなるとサブルーチンを作らないといけないのでしょうか。
またまた私には高度な技術です。
ちょっと勉強してみます・・・。

*** 「商品名」の検索プルダウンだけでうまくいったプログラム。***

<%
'データベース接続(table1)
Set ObjConn = Server.CreateObject("ADODB.connection")
ObjConn.Open "odbcmdb"
StrSQL = "SELECT * FROM table1"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
%>


<!-- 入力フォーム定義 -->
<form method="POST">
<table>
<tr>
<td>商 品 名:
</td>
<td>
<%
'選択リスト表示
Response.Write "<select name=""syohin"">"
Do While Not ObjRS.EOF
Response.Write "<option value=" & _
ObjRS("商品名") & ">" & ObjRS("商品名")
ObjRS.MoveNext
Loop
Response.Write "</select>"
%>
</td>
<td><input type="submit" value="送信">
</td>
</tr>
</table>
</form>

<%
'検索キーワードの取得
Key=Request.Form("syohin")
%>

<%
'データベース接続
Set ObjConn = Server.CreateObject("ADODB.connection")
ObjConn.Open "odbcmdb"
StrSQL = "SELECT * FROM table1" & _
" WHERE (商品名 LIKE '%" & Key & "%')" & _
" or (商品コード LIKE '%" & Key & "%')"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
%>

<%
if Key <> "" then
%>
<!-- データ表示テーブル -->
データ件数:<% = ObjRS.RecordCount %>件
<table border="1" bordercolor="#0099bb" cellspacing="0" cellpadding="3">

<%
'最後のデータを処理するまで繰り返します
Do until ObjRS.EOF
if Key = "" then Exit Do
%>
<tr>
<!-- 「商品名」〜を表示します -->
<td class="kekka3"><%=ObjRS("商品名")%></td>
<td class="kekka3"><%=ObjRS("商品コード")%></td>
<td class="kekka1"><%=ObjRS("価格")%></td>
</tr>
<%
'次のデータに移動します
ObjRS.MoveNext
Loop
%>
</table>

************************************************

これにもうひとつ「商品コード」でも検索できるプルダウンを
追加したいのです。

[3429] Re:ACCESSデータをプルダウンで検索し、表示する
投稿者:なおさん 2003/06/18 16:38:25
すみません、何とかうまくいきました。
あとはデータを昇順に並べる課題が残ってますが、また本を見てわからないときはよろしくお願いします!!



TreeBBS For ASP V.0.1.3
Program By YasNet