|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
エラーになってしまいます
ぴーぽさん
[2002/02/26 18:58:49]
[1745]
|
SQL="単なる文字列"
北岳さん
[2002/02/27 7:36:10]
[1747]
ありがとうございました!
ぴーぽさん
[2002/02/27 9:08:23]
[1748]
SQL文のデバッグ
北岳さん
[2002/02/27 9:49:31]
[1749]
Re:SQL文のデバッグ
ぴーぽさん
[2002/02/27 14:56:46]
[1752]
Re:SQL文のデバッグ
北岳さん
[2002/02/27 15:48:18]
[1754]
Re:SQL文のデバッグ
ぴーぽさん
[2002/02/28 0:52:56]
[1766]
Re:ありがとうございました!
arikさん
[2002/02/27 9:55:45]
[1750]
|
| [1745] エラーになってしまいます |
| 投稿者:ぴーぽさん 2002/02/26 18:58:49 |
| こんばんわ 現状aspで検索ツール作成しています しかし、下記のようなエラーがでてしまうのです。 アプリケーションが要求した名前、または数値インデックスに対応するオブジェクトがコレクションで見つかりませんでした。 /union/invoice/result1.asp, 行 18 なにが行けないのでしょうか? 一応教科書にしたがって書いてるつもりです ご教授頂ければ幸いです <html> <head><title>状況検索</title></head> <body> <h1>検索結果</h1> <% flag=False Set rs=Server.CreateObject("ADODB.Recordset") Set db=Server.CreateObject("ADODB.Connection") db.Open "invoice" SQL="SELECT * FROM cargo " If Request("code")<>"" Then If flag=False Then SQL=SQL & "WHERE (" SQL=SQL & "((cargo.code)='" & Request.Form("cord") & "') " flag=True End If If Flag=True Then SQL=SQL & ")" %> <td nowrap><%=rs("code")%></td> <td nowrap><%=rs("name")%></td> <td nowrap><%=rs("Com") & "部"%></td> <td nowrap><%=rs("ad")%></td> <td nowrap><%=rs("sheetNo1")%></td> <td nowrap><%=rs("sheetNo2")%></td> <td nowrap><%=rs("sheetNo3")%></td> <td nowrap><%=rs("sheetNo4")%></td> <td nowrap><%=rs("sheetNo5")%></td> <td nowrap><%=rs("sheetway")%></td> <td nowrap><%=rs("sheetinvoce date")%></td> <td nowrap><%=rs("packing date")%></td> <td nowrap><%=rs("delively date to ocs")%></td> </tr> <tr> <td nowrap> </td> <td><%=rs("plac")%></td> <td></td> </tr> <%%> </table> </body> </html> |
| [1747] SQL="単なる文字列" |
| 投稿者:北岳さん 2002/02/27 7:36:10 |
| rs.open SELECT * FROM cargo WHERE ( 〜),db,3,3 というのが、検索を実際に実行させる命令文(複数あるうちの1タイプ)です。 SQL="SELECT * FROM cargo WHERE ( 〜)" でも ABC="SELECT * FROM cargo WHERE ( 〜)" でも同じですが、この部分では単に文字列を書いているだけです。 この文字列ができあがったら、 rs.open SQL,db,3,3 ・・・(*) または rs.open ABC,db,3,3 により実際の検索が行なわれ、その後、 rs("code") などで抽出結果を参照できます。 提示されたサンプルには、検索実行の命令行(*)が見当たりません。 |
| [1748] ありがとうございました! |
| 投稿者:ぴーぽさん 2002/02/27 9:08:23 |
| 北岳さま ありがとうございました。 ご指導頂きました個所の修正でエラー表示は出なくなりました。 しかし、検索した時に全部のレコードが表示されてしまいます。 コードというもので検索したいのですが、そこに田中といれて検索します。 ところが田中以外の山田までブラウザ表示されてしまうことがわかりました。 未熟ゆえ、いまだにその原因がわかりません。 たびたびで申し訳ございませんが、ご指導お願いできませんでしょうか? よろしくお願いいたします。 |
| [1749] SQL文のデバッグ |
| 投稿者:北岳さん 2002/02/27 9:49:31 |
| rs.open SQL,db,3,3 の1行上に response.write "<br>SQL=" & SQL response.end を挿入してみて下さい。 SQL文の中の Request.Form("cord") の位置に、文字列田中がちゃんと入っていますか? ---------------- flag=False If flag=False Then SQL=SQL & "WHERE (" では、SQL文中にWHERE という文字は出て来ない理屈ですが、 do until rs.eof〜loop がないため最初の1件しか出ない筈なのに山田も出るとのこと、 また、</table>があって<table>もないことから、 抜粋表示されていると推測され、スクリプトについては何とも言えません。 |
| [1752] Re:SQL文のデバッグ |
| 投稿者:ぴーぽさん 2002/02/27 14:56:46 |
| > rs.open SQL,db,3,3 > の1行上に > > response.write "<br>SQL=" & SQL > response.end > > を挿入してみて下さい。 挿入しました。 すると画面上は SQL=SELECT * FROM cargoとしか表示しません 田中はACCESSの指定レコードの中に入っています。 > SQL文の中の Request.Form("cord") の位置に、文字列田中がちゃんと入っていますか? > ---------------- > flag=False > If flag=False Then SQL=SQL & "WHERE (" > では、SQL文中にWHERE という文字は出て来ない理屈ですが、 > do until rs.eof〜loop がないため最初の1件しか出ない筈なのに山田も出るとのこと、 > また、</table>があって<table>もないことから、 > 抜粋表示されていると推測され、スクリプトについては何とも言えません。 > 基本的にはここはエディタで突っ込んだときに生成されたのだと思われます。 何かまだまだ不具合があるのかもしれません。 何とぞご指導下さいますようよろしくお願いします |
| [1754] Re:SQL文のデバッグ |
| 投稿者:北岳さん 2002/02/27 15:48:18 |
| これでいかがでしょう。(検証していませんが) ここではnameで検索してみました。 ----1.htm--- <html><body> <form action="2.asp" method="post"> <input type="text" name="name" value="田中"> <input type="submit" value="送る"> </form> </body></html> ---2.asp--- <html><body> <H2>検索条件:*<%= Request.Form("name") %>*</h2> <% If Request.Form("name")="" Then '● %> <p>検索条件がありません。 </body></html> <% response.end end if '● '------------------- Set rs=Server.CreateObject("ADODB.Recordset") Set db=Server.CreateObject("ADODB.Connection") db.Open "invoice" SQL="SELECT * FROM cargo " '部分一致 SQL=SQL & "WHERE cargo.name LIKE '%" & Request.Form("name") & "%'" '完全一致 'SQL=SQL & "WHERE cargo.name='" & Request.Form("name") & "'" rs.open SQL,db,3,3 if rs.RecordCount<1 then '■ %> <p>該当する積荷はありません。 </body></html> <% db.close set db=nothing response.end end if '■ %> <table> <% do until rs.eof %><tr> <td nowrap><%=rs("code")%></td> <td nowrap><%=rs("name")%></td> </tr> <% rs.MoveNext loop rs.close db.close set db=nothing %> </table> </body></html> |
| [1766] Re:SQL文のデバッグ |
| 投稿者:ぴーぽさん 2002/02/28 0:52:56 |
| 度重なるご指導まことにありがとうございます。 明日ご指示いただいたソースで一度検証してみます > これでいかがでしょう。(検証していませんが) > ここではnameで検索してみました。 > > ----1.htm--- > <html><body> > <form action="2.asp" method="post"> > <input type="text" name="name" value="田中"> > <input type="submit" value="送る"> > </form> > </body></html> > > > ---2.asp--- > <html><body> > <H2>検索条件:*<%= Request.Form("name") %>*</h2> > <% If Request.Form("name")="" Then '● > %> > <p>検索条件がありません。 > </body></html> > <% response.end > end if '● > '------------------- > Set rs=Server.CreateObject("ADODB.Recordset") > Set db=Server.CreateObject("ADODB.Connection") > db.Open "invoice" > SQL="SELECT * FROM cargo " > '部分一致 > SQL=SQL & "WHERE cargo.name LIKE '%" & Request.Form("name") & "%'" > '完全一致 > 'SQL=SQL & "WHERE cargo.name='" & Request.Form("name") & "'" > rs.open SQL,db,3,3 > if rs.RecordCount<1 then '■ > %> > <p>該当する積荷はありません。 > </body></html> > <% > db.close > set db=nothing > response.end > end if '■ > %> > <table> > <% > do until rs.eof > %><tr> > <td nowrap><%=rs("code")%></td> > <td nowrap><%=rs("name")%></td> > </tr> > <% > rs.MoveNext > loop > rs.close > db.close > set db=nothing > %> > </table> > </body></html> > |
| [1750] Re:ありがとうございました! |
| 投稿者:arikさん 2002/02/27 9:55:45 |
| > Request.Form("cord") > Request.Form("code") 書き間違いでしょうか。 |
|
TreeBBS For ASP V.0.1.3 |