- ベストアンサー
MS Accessでデータ呼び出しについて
いつもお世話になっています。 めちゃくちゃ初心者です。 早速ですが質問させてください。 Access2000を使用してデータベースを作成しWEB上でデータ管理できるようにしたいとプログラミングしています。 ABCテーブルの中に A B C 111 222 333 444 555 666 777 888 999 と、いったように複数のデータがあります。 このデータを <SELECT><OPTION>○○○</OPTION></SELECT>の構文(?)を使用して △△△ 111/222/333 444/555/666 777/888/999 といったようなプルダウン表示にしたいと思っています。 縦方向(1・4・7)には任意に情報が追加されていきます。 SQL = "SELECT * FROM ABCMaster Order By A" Set rs = db.Execute(SQL) If Not RS.BOF Then Do While Not RS.EOF a="" & RS("A") & "/" & RS("B") & "/" & RS("C") & "" Response.Write "Select name=""III""><OPTION>" & a & "</OPTION></SELECT>" Session("A" & tmpIndex)=rs("A") RS.MoveNext tmpIndex=tmpIndex+1 Loop Else ・ ・ ・ ボクにはこの程度までしか組めませんでした。 これだと当然ですがプルダウンリスト(?)がいくつも出てきますし中に表示されるものは同じものになってしまいます。 ただ、1行目の111/222/333はちゃんと表示されます。これを2行目以降追加するようにしたいのです。 作成しているファイルは任意名.aspという拡張子のものになります。 質問の意味自体がおかしいかもしれませんし、 やろうとしていること自体が間違っているのかもしれませんが、今週中にはある程度の形に仕上げないといけないのでどんなアドバイスでも良いのでよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
htmlの部分ですがSELECTタグをループさせているために セレクトボックスがレコード数出てしまいますね。 ------------------------------------------------ SQL = "SELECT * FROM ABCMaster Order By A" Set rs = db.Execute(SQL) If Not RS.BOF Then Response.Write "<Select name=""III"">" Do While Not RS.EOF a="" & RS("A") & "/" & RS("B") & "/" & RS("C") & "" Response.Write "<OPTION values=" & tmpIndex & ">" & a & "</OPTION>" Session("A" & tmpIndex)=rs("A") RS.MoveNext tmpIndex=tmpIndex+1 Loop Response.Write "</SELECT>" Else ・ ・ ・ ------------------------------------------------ とループの外に<select>タグを追い出してみてください。
その他の回答 (1)
- ngsvx
- ベストアンサー率49% (157/315)
まず、ASPの仕組みを知っておいてください。 サーバー側でHTMLファイルを作って、それをクライアントに送信するのです。 つまり、HTMLを知らなければ、当然ASPは扱えません。 <SELECT> <OPTION> </OPTION> </SELECT> はHTMLです。 今回、うまくいかないのは、DBの扱い方は関係なく、あなたがHTMLをわかっていないためです。 <SELECT>タグは、プルダウンメニューを表示します。 中身は<OPTION>タグで指定します。 中身が複数の場合は、 <SELECT> <OPTION>A <OPTION>B <OPTION>C </SELECT> のようになります。 今は、 a="" & RS("A") & "/" & RS("B") & "/" & RS("C") & "" Response.Write "Select name=""III""><OPTION>" & a & "</OPTION></SELECT>" の中に</SELECT>が入っているため、 <SELECT><OPTION>A</OPTION></SELECT> <SELECT><OPTION>B</OPTION></SELECT> <SELECT><OPTION>C</OPTION></SELECT> のようになっているのではないでしょうか。 <SELECT>タグを出力する場所をループの外側にすればいいはずです。
お礼
おっしゃる通りHTMLやVB、ASPなど単語は知っていても意味はさっぱりという感じです。 前の担当者が辞めていきなり放り込まれた部署で、 大した引継ぎも無くプログラム作成に。。。 前の担当者が残したものを頼りに似たような動作をする記述を探って更新して書き直しての作業の繰り返しをしています。 ループを外側に持っていくと「ステートメントがありません」ってエラーがでて困って先ほどのような記述になりました。 #2の方の記述を参考にしたらできました。 ありがとうございます。 また何かありましたらよろしくお願いします
お礼
ありがとうございます! #1にて同様の答えをいただいたのですが<SELECT>タグを外に出したらエラーになってしまいちょっと困っていました。 その都度Response.Writeが必要なのを忘れていました。 上記記述も前担当者の他の記述を流用しているので、 なぜこのような記述になるのかを調べながら作業しています。 未だにわからないけど動いているからいいや。みたいなとこもしばしば。。。(汗) 記述していただいたおかげでなんとか解決できました。 本当にありがとうございます! また度々ここでお世話になるかと思いますがその節はまたよろしくお願いします。