asp+vbscriptで文字列の有無を判定する方法

このQ&Aのポイント
  • asp+vbscriptで文字列の有無を判定する方法について教えてください。
  • 現在、mdbファイルを使用してasp+vbscriptでWebページを作成しています。テーブルデータには空白が含まれており、その場合は表示を行わず、データが存在する場合にのみ表示させたいです。
  • 現在のコードでは、rs.Fields.Item("xxxx") = "" としていますが、データの有無に関わらず表示されてしまいます。文字列の「有り」「無し」を正しく判定する方法を教えてください。
回答を見る
  • ベストアンサー

asp+vbscriptで「文字列があるか、無いか」の条件分岐をしたい

asp+vbscriptで「文字列があるか、無いか」の条件分岐をしたい場合 mdbファイルを用いて、asp+vbscriptでWebページを作成しています。 mdbファイル内のテーブルデータ(文字列)が空白(データが無い)のであれば 何も表示しなくて、データが入っている場合、そのデータ(文字列)を 表示させたいのですが、指定方法がわかりません。 If rs.Fields.Item("xxxx") = "" Then ←ここの指定方法が知りたいです。 Else Response.Write "<tr>" & vbCrLf Response.Write "<td>" & rs.Fields.Item("xxxx") & "</td>" & vbCrLf Response.Write "</tr>" & vbCrLf End If 上記の通り「""」ではデータの有り無しに関わらず表示されてしまいます。 (文字データは無いので文字が出ませんが、枠が出てしまう) 文字列の「有り」「無し」の判定方法をご存じの方、ご教授頂けますでしょうか。 宜しくお願い致します。

  • rg6ms
  • お礼率31% (6/19)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

rsは Recordsetオブジェクト であると仮定して。 rs.Fields.Item("xxxx").Value でないとダメとか。(自信はないです) DataReaderだとIsDBNull関数を使うんですけどね。

rg6ms
質問者

お礼

回答、有り難うございました。 私の記述方法に問題があったようで、ご指示頂いた Valueでは動きませんでした。 後述された「IsDBNull」を参照した結果、最終的に 「IsNull」関数で動作する事ができました。 ご教授、有り難うございました! If IsNull(rs.Fields.Item("xxxx")) = true then Else Response.Write "<tr>" & vbCrLf Response.Write "<td>" & rs.Fields.Item("xxxx") & "</td>" & vbCrLf Response.Write "</tr>" & vbCrLf End If

関連するQ&A

  • Access2000のデータをASPで表示させるには?

    間違ってソースを全部消してしまって、記憶を頼りに戻してみたのですが、Accessのデータの表示方法がわからなくなってしまいました。 ↓これがそのソースです <%@ LANGUAGE="VBScript" %> <% Option Explicit %> <Html> <Head> </Head> <Body> <% Dim db,rs,sql Set db = Server.CreateObject("ADODB.Connection") db.Open ("db1")←データベース名入れるんですよね? sql = "Select id,namae,n_yomigana,juusyo,j_yomigana From table1 where db1" Set rs = db.Execute (sql) Response.Write rs.fields("id") Response.Write "<br>" Response.Write rs.fields("namae") Response.Write "<br>" Response.Write rs.fields("n_yomigana") Response.Write "<br>" Response.Write rs.fields("juusyo") Response.Write "<br>" Response.Write rs.fields("j_yomigana") Response.Write "<br>" rs.close db.close %> </Body> </Html> ソースを丸ごと載せてしまってごめんなさい、読みにくいですよね。 足りないところや直し方が思い出せなくて困っています。 ご迷惑おかけしますが、アドバイスお願いします。

  • [VBScript]ラジオボタンでform送信

    HTML内でVBScriptを用いて、以下のようなことをしたいと思っています。 <tr>   <td nowrap align="center">東京 or 大阪 </td>   <td><input type="radio" name="ikisaki" value="0" checked>東京 <input type="radio" name="ikisaki" value="1" >大阪 </td> <form method="post" action="xxxx.asp" name="form"> <tr>  <td nowrap align="right">市名</td>  <td nowrap><font size="+2"><%=strCitNm%></font></td> </tr> <tr>  <td>   <input type="submit" name="A1" value="送信">  </td> </tr> 上記なようなラジオボタンが2つあったとして、[送信]を押したときに ラジオボタンのチェックが「東京」なら action="tokyo.asp" に、 「大阪」なら action="oosaka.asp"へform送信を行いたいと思っているのですが、 HTML内でVBScriptを使用する場合、どのような記述にすればいいのかがわかりません。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • VBScriptの文字列の最大文字数は?

    初心者です、ASPのVBScriptの文字列の最大文字数は何文字でしょうか? また、ウェブ上で見ることのできるVBScriptのリファレンスマニュアルなどでよいものは無いでしょうか? オンラインヘルプも在るようですが使用し方が分かりませんのでその当りのアドバイスお願いできればと思います・

  • Response.Writeを使用して更新するには

    いつもお世話になってます。 前のページでIDで検索し、更新ボタンをクリックするとkousin.aspへ表示しているIDのレコードをそのまま表示して更新をしたいのですがうまくいきません。 Response.Writeのせいでしょうか?宜しくお願いします。 <%@LANGUAGE="VBSCRIPT"%> <% Dim ObjConn,ObjRS pickup = Request.Form("uID") MSACFN = Server.MapPath("dbname.mdb") DBFile="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MSACFN Set ObjConn = Server.CreateObject("ADODB.Connection") Set ObjRS = Server.CreateObject("ADODB.Recordset") ObjConn.Open DBFile sql="select * from tablename where uID = '"&pickup&"'" Set DBexe = ObjConn.Execute(sql) ObjRS.CursorLocation = 3 ObjRS.Open "select * from tablename" ,ObjConn,3,3 Response.Write "<form method=""POST"" action=""kousin.asp"">" Response.Write "<table width=""519"" border=""1"">" Response.Write "<tr>" Response.Write "<tr><td>" & ("ID") & "</td><td>" & ObjRS("uID") & "</td></tr>" Response.Write "<tr><td>" & ("氏名") & "</td><td>"& ObjRS("uNAME") & "</td></tr>" Response.Write "<tr><td>" & "<input type=""hidden"" value=""uID""><input type=""submit"" value=""更新"" onClick='return checkForm()'><input type=""button"" onclick=""del.asp""name=""削除"" value=""削除""></td>" Loop Response.Write "</table>" ObjRS.close Set ObjRS=Nothing ObjConn.close Set ObjConn=Nothing %>

  • ASPでHTMLの内容を取得するには??

    HTMLのテキスト1のテキストボックスはOnClickイベントで文字列を取得し表示させてます。 テキスト2のテキストボックスに文字列を入れてその文字列をtest.aspで取得させてます。 test.aspでもテキスト1の内容を取得する方法はありますでしょうか?? formの入れ子はできないし、1つのform内でテキスト1、テキスト2を入れると OnClickイベントがきかなくなります。 わかる方おりましたらご教示ください>< 宜しくお願い致します。 ------ aa.html ---------------- <html> <head> <title>ASP TEST </title> </head> <body> <form name="fm1"> <td> <p>テキスト1:<input type="text" name="pathTXT" size="40"> <input type="button" name="fileBT" value="選択"> </p> </td> </form> <form action="test.asp" method="post"> <td> <p>テキスト2:<input type="text" name="keyTXT" size="40"> <input type="submit" value="実行"> </p> </td> </form> </body> </html> <SCRIPT LANGUAGE="vbscript"> Sub fileBT_OnClick() Document.fm1.pathTXT.value = "aaaaaaaa" End sub </SCRIPT> ------ test.asp ---------------- <%@LANGUAGE="VBSCRIPT"> <% Response.Write(Request.Form(keyTXT)) '''↓↓↓↓↓↓↓↓↓ aa.htmlのpathTXTを取得したい。。。 Response.Write(Request.Form(pathTXT)) >%

    • ベストアンサー
    • HTML
  • フォームで複数の条件を入力させて、その条件に対してクエリを組みなおして、結果を出力したい

    以下のフォームを作成しました。 ************1.html************ <form method="POST" action="2.asp"> <table> <tr> <td>氏名</td> <td><input name="simei" file" type="text"></td> </tr> <tr> <td>住所</td> <td><input name="jusho" file" type="text"></td> </tr> <tr> <td>TEL</td> <td><input name="tel" file" type="text"></td> </tr> </table> <input type="submit" value="検索"> 次に入力された値をクエリに入れて、結果を出力しようとしています。 入力された項目が、 空欄の場合は、条件に入れない、 複数の場合は、条件を複数にする、 というようにしたいです。 ************2.asp************ simei = Request.Form("simei") jusho = Request.Form("jusho") tel = Request.Form("tel") Set db=Server.CreateObject("ADODB.Connection") db.Provider = "Microsoft.Jet.OLEDB.4.0" db.ConnectionString = Server.MapPath("test.mdb") db.open ……クエリを1.htmlで入力された条件のみを反映させたい…… ……が、その書き方がわからない………………………………… Set rs = db.Execute("SELECT テーブル名.* FROM テーブル名 WHERE ((テーブル名.氏名)='" & simei & "')") ……条件が”氏名”だけの場合ならできるのですが、フォームで入力された項目のみを反映させる方法がわからない…………………………… ………………クエリ結果を出力する……………… Response.Write ("" & rs.Fields.Item("氏名") & "") 宜しくお願いします。

  • 空文字列の判断方法

    お世話になっています。 空文字列を判断させる方法について教えて下さい。 下記のように、If分を作成しています。 ============================== If rs("USER") = "" Then Response.write "有効" Else Response.write "無効" End If ============================== これだと、空文字列をうまく判断してくれず、結果がすべて"無効"になってしまいます。rs("DEL_FLAG") = ""をrs("DEL_FLAG") = Nullにしても駄目でした。 空文字列を判断させるには、どのように記述したらよいでしょうか? どうしても空文字列を判断させる必要があります。 よろしくお願い致します。

  • フォームの値をうまく出力できない

    フォーム(1.htm)で、質問と答えと入力し、 その結果を次のページ(2.asp)で表示させるASPを作成しました。 以下のように作成したいのですが、うまくいきません。 どうしたらいいのでしょうか。 宜しくお願いします。 ・質問と答えは10個入力されるとはかぎらない ・例えば7個入力されたとき、question1からquestion7まで入力されるとはかぎらない(question2が空欄で、question9に入力される場合もある) ・どのように入力された場合でも、qとaの画像は、q1.gif・a1.gifから 連続で表示されるようにする。 ・フォームで入力されたところを上から順番にq1.gif~、a1.gif~の画像を使って、2.aspに表示させる。 ****1.htm***** <form method="POST" action="2.asp"> <input name="question1" type="text"> <input name="answer1" type="text"> … <input name="question10" type="text"> <input name="answer10" type="text"> </form> ****2.asp************ question1 = Request.Form("question1") answer1 = Request.Form("answer1") … question10 = Request.Form("question10") answer10 = Request.Form("answer10") Response.Write ("<table>") Response.Write ("<tr>") Response.Write ("<td><img src= q1.gif></td>") Response.Write ("<td>" & question1 & "</td>") Response.Write ("</tr>") Response.Write ("<tr>") Response.Write ("<td><img src= a1.gif></td>") Response.Write ("<td>" & answer1 & "</td>") Response.Write ("</tr>") … Response.Write ("<tr>") Response.Write ("<td><img src= q10.gif></td>") Response.Write ("<td>" & question10 & "</td>") Response.Write ("</tr>") Response.Write ("<tr>") Response.Write ("<td><img src= a10.gif></td>") Response.Write ("<td>" & answer10 & "</td>") Response.Write ("</tr>") Response.Write ("</table>")

  • 正規表現で任意の文字列が含まれない文字列の取得

    VB6/VBAでお願いします。 <tr> <td>あいうえお</td> <td>かきくけこ</td> </tr> ここで、<td>と</td>に挟まれた文字列を取得しようとするのですが、 ABCとXYZ両方が取得できます。任意の文字列を含まない指定はどう すればいいでしょうか? この場合、「きくけ」を含まない「あいうえお」を取得したいと思い ます。

  • JSPでの文字列編集出力

    JSPで文字列を読み込み、一部編集してデータベースに出力させようとしています。現在、文字列の編集の部分でうまくいかず困っています。 <tr> <td align="center"> </td> <td align="center">C 1</td> <td align="center">C 2</td> </tr> <tr> <td><font color="#FFFFFF">_</font>コスト</td> <td align="right"><font color="#FFFFFF">_</font>\ 200000<font color="#FFFFFF">_</font></td> <td align="right"><font color="#FFFFFF">_</font>\ 300000<font color="#FFFFFF">_</font></td> </tr> の内容を読み込み、タグを取り除き<tr>ごとに次の行として ,C 1,C 2 _,コスト,_,\200000,_,_,\300000,_ のように出力したいのです。 現在、String型で"<td"や">"と指定し、substring()やindexOf()を使いやっているのですが、 <td align="right"><font color="#FFFFFF">_</font>\ 300000<font color="#FFFFFF">_</font></td> のような、同じ行に2度出てくると初めしか文字列を取らなかったりしてうまくいきません。 違う方法や、アドバイスなどないでしょうか?また、XMLのDOMを使った方がいいのでしょうか?(XMLは全くわからないのですが、DOMを使えばもっと簡単にできるのでしょうか?) よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう