出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[4779] 範囲検索? |
投稿者:sora-aさん 2004/11/15 22:34:16 |
こんばんは。 sora-a、ASP歴2ヶ月、です。以後、お見知りおきを。 (管理人様と同じ地区!に住んでおります…。) 私は今、"範囲検索"ができるものを作成しようと思っています。 普通の検索は、サンプルを参考に見様見真似でできたのですが(^^;)範囲検索はどこもサンプルや参考書等も無く非常に困っております。初心者向けのサイト様ということで、思い切って書き込みさせていただきます…。 今、 <input type="text" name="keisan1"> に入力した値段から <input type="text" name="keisan2"> 円までを範囲検索したいと思っています。 "keisan1の値段"〜"keisan2までの値段"を検索 ということですけどどういった方法が可能でしょうか? 土日使って調べてみたのですが、理解できませんでした。 まだまだ勉強不足ですね…。 どなたかおわかりになるかたがいらっしゃいましたら、よろしくお願い申し上げます。 |
[4780] Re:範囲検索? |
投稿者:Lightningさん 2004/11/16 8:43:03 |
んと、文意が理解できません(ぉ 範囲検索ということですが・・・ イチゴ15円 ミカン30円 バナナ50円 メロン70円 とあった場合に20円以上、60円未満のものを検索するってこと・・・なんでしょうけど、データの保持方法とかさっぱりわかんないですね。 DBにあるのならSQLでSELECT文をいじれば良いだけですし (Select * from 値段表 where 値段 < 80 and 値段 => 20) 変数に保持しているのならif文あたりで切り分けるだけでいいだけで (if kakaku < 80 and kakaku >= 20 then) もうちょっと具体的に書いてもらえると返事しやすいです・・・ |
[4784] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 13:31:42 |
こんにちは。 早速のご回答、大変嬉しく思います。 今回もよろしくご指導願います。 文字ミスがあった為、上記の文章は削除しております。 お見苦しいかと存じますが、ご了承くださいますようお願い申し上げます。 <td height="35"> <input type="text" name="prace1" size="20"> 円 〜 <input type="text" name="prace1" size="20"> 円 という風に、記入者に検索したい範囲を入力していただきます。 データは別にあり、DBに保存しております。 そこからデータの呼び出しを行っております。 SQL文は入力値が空白でないなら抽出条件をSQL文に加える、ということで SQL = "SELECT * FROM db5 WHERE id" If nedan<>"" Then SQL = SQL & " AND nedan='" & nedan& "'" となっております。 ここは、サンプルのテキストを参考としてますので、必ずあっております(笑) If nedan<>"" Then SQL = SQL & " AND nedan='" & nedan& "'"に、何かを追加すればよい、 ということでしょうか? |
[4785] Re:範囲検索? |
投稿者:Lightningさん 2004/11/16 13:43:22 |
> <td height="35"> > <input type="text" name="prace1" size="20"> 円 〜 > <input type="text" name="prace1" size="20"> 円 > という風に、記入者に検索したい範囲を入力していただきます。 tdは関係無いね nameが同じだと受取り時に訳わかんなくなるので変えましょう prace1〜prace2だとすると > データは別にあり、DBに保存しております。 > そこからデータの呼び出しを行っております。 > SQL文は入力値が空白でないなら抽出条件をSQL文に加える、ということで > > SQL = "SELECT * FROM db5 WHERE id" > > If nedan<>"" Then SQL = SQL & " AND nedan='" & nedan& "'" > このnedanってのはprace1が入ってるんでしょうけどね〜これだと範囲にならないので・・・ nedan1 = request.form("prace1")'POST送信と仮定してます。 nedan2 = request.form("prace2") SQL = "SELECT * FROM db5 WHERE id" 'nedan1,2が数字であるか判定 if isNumeric(nedan1) and isNumeric(nedan2) then select case true 'nedan1,2が同じ時 case nedan1 = nedan2 SQL = SQL & " and nedan = " & nedan1 'nedan1<nedan2のとき case nedan1 < nedan2 SQL = SQL & "and nedan >= " & nedan1 & " and nedan <= " & nedan2 'nedan1 > nedan2のとき SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " % nedan1 end select end if とかかなあ・・・ もちろんSelectCaseなんぞ使わず、ifで切り分けるだけでもいいんですけどね |
[4786] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 14:43:35 |
ご丁寧に有り難うございます…。 ご指摘通り、nedanはprace1の誤りでした。ご迷惑おかけいたします。 さっそく、記述を当てはめてみたところ、他はなんともエラーは出ないのですが、 SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " % nedan1 に、文字が正しくありません。と、出てしまいます。 こちら検索してみたところ、 識別子の文字に、JScript コンパイラで識別できない文字が使用されています。次の規則に従う文字が有効です。 先頭がアスキー文字 (大文字または小文字) かアンダースコア (_) であること。 先頭文字に続く文字は、アスキー文字、数字、またはアンダースコアであること。 識別子名に予約語は使用できません。 ということなのですが、どこかおかしなところでもあるのでしょうか? |
[4787] Re:範囲検索? |
投稿者:Lightningさん 2004/11/16 15:06:05 |
ごめん! > SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " % nedan1 %なってる &です& 文字列変数 & 文字列変数 で文字列をつなげることができるんです。 |
[4788] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 15:33:25 |
こんにちは。度々お世話になっております。付き合っていただき、感謝いたします。 SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " & nedan1 と、いうことですよね? クエリ式 'id and nedan =' の 構文エラー : 演算子がありません。 と出てしまいます(汗)。 |
[4789] Re:範囲検索? |
投稿者:Lightningさん 2004/11/16 17:21:39 |
> こんにちは。度々お世話になっております。付き合っていただき、感謝いたします。 > > SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " & nedan1 > と、いうことですよね? そう > クエリ式 'id and nedan =' の 構文エラー : 演算子がありません。 んと、一番最初に Response.buffer = true ってかいてSQLを実行する前のところに Response.write(SQL) Response.flush って書いてみてどんなSQLが出力されてますか? |
[4790] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 17:56:28 |
Microsoft OLE DB Provider for ODBC Drivers エラー '80040e14' [Microsoft][ODBC Microsoft Access Driver] クエリ式 'id and nedan =' の 構文エラー : 演算子がありません。 /db5/index.asp, 行 249 と、表示いたします。 |
[4791] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 18:26:19 |
奥が深いです・・・。sql初心者なばかりに お付き合いさせてしまい、お時間割いてしまい、申し訳ございません。 今、記述している形式などで、 betweenを使用して、簡単に"入力した数値"〜"入力した数値"というのはできないものでしょうか? |
[4792] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 8:38:46 |
> 奥が深いです・・・。sql初心者なばかりに > お付き合いさせてしまい、お時間割いてしまい、申し訳ございません。 > 今、記述している形式などで、 > betweenを使用して、簡単に"入力した数値"〜"入力した数値"というのはできないものでしょうか? http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k07.htm 参照 Betweenは頭から抜けてました。 |
[4793] Re:範囲検索? |
投稿者:sora-aさん 2004/11/17 8:53:13 |
select * from sak.受注m where 受注数 between 100 and 200 order by 受注番号; ですよね? で、あてはめると、 select * from dbname5.id where nedan between 100 and 200 order by 受注番号; ですよね(^^;) 受注番号のところには何を記入すべきなのでしょうか? こんなところでつまずいていて申し訳ないです。 私も、ふとbetweenを思い出しました。『〜の間・・・間』、『!!!』 という感じで・・・ |
[4794] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 9:21:52 |
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_k04.htm 参照 > select * from dbname5.id > where nedan between 100 and 200 > order by 受注番号; 見れば分かりますけど、order by 〜は、〜を昇順に整列って事です。 なので、orderBy自体をなくすか、もしくはnedanを受注番号のところに入れるか、でしょうね |
[4795] Re:範囲検索? |
投稿者:sora-aさん 2004/11/17 9:58:30 |
早朝からお付き合い、有り難うございます。 感謝いたします。 教えていただいたようにやってみたのですが、どうも うまくいきません。 'Case' がありません。 と表示されてしまいます。Caseも必要なんですか? 今、参考書も見ているのですがそんなこと書いてないんです。 困りました…。 |
[4796] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 10:24:35 |
あうあう Select文にcaseが抜けている部分があるってエラーです。 私の示した例に抜けがありました 'nedan1 > nedan2のとき case nedan1 > nedan2'ここが抜けてた SQL = SQL & "and nedan >= " & nedan2 & " and nedan <= " % nedan1 できればcase elseとかも入れるべきなんですが、このSelectCaseでelseは発生するわけが無いですよね ところでSQLのWhere idの部分っていります? Select * from DB5 where nedan between 検索最小値 and 検索最大値 ってなってれば良いはずですから・・・ |
[4797] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 10:25:34 |
追記:エラー文ですが、大体の無いようの一覧があるので書いておきますね http://www.microsoft.com/japan/msdn/library/ja/script56/html/vsmscsyntaxerrors.asp VBScriptのエラーの、ですけどね |
[4798] Re:範囲検索? |
投稿者:sora-aさん 2004/11/17 10:40:35 |
エラー文のご紹介有り難うございます。 いつもエラーに悩まされておりましたので 大変嬉しいです。 さて、SQL = "SELECT * FROM db WHERE id" ですが、こちらで{id}やら何かを指定しておかないと、SQLで 呼び出しができないのです。 なので、つけております。 なので、Select * from DB5 where nedan between 検索最小値 and 検索最大値 は使えないということになるんでしょうか? 謎です(^^;) |
[4799] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 11:22:52 |
> こちらで{id}やら何かを指定しておかないと、SQLで > 呼び出しができないのです。 > なので、つけております。 なるほど〜 > なので、Select * from DB5 where nedan between 検索最小値 and 検索最大値 > > は使えないということになるんでしょうか? > 謎です(^^;) いや、使えると思いますけども〜 Select * from DB5 where nedan id and between 検索最小値 and 検索最大値 でいいはず・・・ ところで、なにのDBを使っておられますか? |
[4800] Re:範囲検索? |
投稿者:sora-aさん 2004/11/17 11:36:47 |
ご丁寧に有り難うございます。 Select * from DB5 where nedan id and between 検索最小値 and 検索最大値 でいけるのですね・・。もう少しチャレンジしてまいります。 DBですが、MDBを使っております。 |
[4801] Re:範囲検索? |
投稿者:Lightningさん 2004/11/17 11:41:50 |
> ご丁寧に有り難うございます。 > Select * from DB5 where nedan id and between 検索最小値 and 検索最大値 > でいけるのですね・・。もう少しチャレンジしてまいります。 > > DBですが、MDBを使っております。 MDBってことはAccessですか? AccessならばクエリにSQLを書きこんでみて希望する結果が得られるかのテストをしてみてください。 それが得られれば、そのSQLが生成されるようにコーディングすればいいですから |
[4802] Re:範囲検索? |
投稿者:sora-aさん 2004/11/17 15:29:44 |
有り難うございました。 何といってよいやら・・・感無量です。 こんなに長くレスがつくまでつきあってくださった Lightningさん、感謝いたします。 いつか、きっとお礼したいと思います…。 |
[4803] Re:解決?:範囲検索? |
投稿者:Lightningさん 2004/11/17 16:19:08 |
> 有り難うございました。 > 何といってよいやら・・・感無量です。 > こんなに長くレスがつくまでつきあってくださった > Lightningさん、感謝いたします。 > いつか、きっとお礼したいと思います…。 お礼は誰か困ってる人へのサポートでお願いします。 |
[4804] Re:解決?:範囲検索? |
投稿者:sora-aさん 2004/11/17 17:44:48 |
はい、そうですね。 わたしもしっかり勉強して知識をつけたいと思います。 perlなどにくらべ、まだまだサポートしてくれる方がすくないですものね・・。 では、失礼いたします。 |
[4783] Re:範囲検索? |
投稿者:sora-aさん 2004/11/16 12:11:17 |
発言者により削除されました!! |
TreeBBS For ASP V.0.1.3 |