• 締切済み

ASP(VBScript)でDBのテキスト型の空白判断

ASP(VBScript)でmdbのデータベースを開き 処理をするコードを書いているのですが 項目に空白かnullのどちらかが入っている場合 どちらも空白として判断して処理したいのですが DBに接続してレコードセットをオープンし ただ単に項目を表示させることはできています。 空白の時に違う表示をしようとしたときに以下のようなコードを 書いているのですがいつもERRの表示が出てしまいます if objRS("hogehoge").value="" or objRS("hogehoge").value=Null then '空白の判断 hensuu = "空白" else hensuu = "ERR" end if 実行時エラーは出ないんですが アクセスで見る限り このmdbデータベースのhogehogeは空白です。 どなたか回避策などご存じでしたらご教授下さい。 よろしくお願いします。

みんなの回答

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

DBNull、もしくはIsDBNullで判別すべきなんじゃないでしょうか。 それか一度string型にキャストしてみるとかで。

関連するQ&A

  • VBScriptでのDBのエラー取得

    VBScriptでADO(ADODB)接続により、SQLServer(2012)に接続して クエリを発行し、結果をファイルに出力するVBScriptを作成して います。 SQL実行時のエラーに対応する為、VBScriptにてエラーオブジェクトのプロパティ (Err.Number、Err.Description)を使用し、エラー番号と内容を取得しているの ですが、SQL Serverから発行しているエラー番号、エラー内容を取得したいので すが、取得できません。 どのようにすれば、データベース固有のエラーを取得ができますか。 是非ご教示いただきたく、 お手数をおかけ致しますが、宜しくお願い致します。 ------------------------------------------------- Option Explicit Dim objADO Dim objRS Dim Sql if WScript.Arguments.Count <> 1 then WScript.echo("usage: script.vbs arg1") WScript.Quit(-1) end if arg1 = WScript.Arguments(0) Set objADO = CreateObject("ADODB.Connection") objADO.Open "Provider=SQLOLEDB;" & _ "Data Source=hoge;" & _ "Initial Catalog=hoge;" & _ "Integrated Security=SSPI;" sql = "" sql = "select ~ where column ='"&arg1&"'" set objRS = objADO.Execute(sql) If Err.Number <> 0 Then objADO.Close Set objADO = Nothing WScript.Quit(-1) End If sql = "" sql = "update ~ ~ where column ='"&arg1&"'" objADO.Execute(sql) If Err.Number <> 0 Then 更新の破棄とエラー内容の表示 Else 更新を反映 End If objADO.Close Set objADO = Nothing

  • ASP(VBScript)について教えてください。

    以前、↓で質問を挙げさせてもらった者です。 <http://okwave.jp/qa/q6615640.html> ASPで作成した画面上からADOを用いて、CSVファイルの 項目を表示しようと思ったのですが、エラーが出てしまいました。 エラー箇所を調べてみたのですが、原因がわからず作業が中断しています。 申し訳ありませんが、下記のソースでどこが間違っているのか 教えていただけないでしょうか? ■期待する動作: CSVファイルを読み取り、指定したIDの行の名前(NAME),年齢(AGE)を 表示させる ******* CSVファイル(test.csv)の中身 ******* [ID],[NAME],[AGE] 1,山田,20 2,田中,30 3,佐藤,40 ******************************************* ******* ASP(VBScript)のソース ******* <% Dim objAdo Dim objRS Dim strPath Dim strId Dim strName Dim strAge strId = "2" 'test.csvのパスを取得 strPath = replace(Server.MapPath("test.csv"),"\test.csv","") 'ADOオブジェクトを作成 Set objAdo = CreateObject("ADODB.Connection") 'ADOを使いCSVファイルを扱う準備(オープン)を行う objAdo.Open "Driver={Microsoft Text Driver (*.txt ; *.csv)} ; DBQ=" & strPath & " ; ReadOnly=1" 'SQLを実行し、当該タスクのデータを抽出 Set objRS = objAdo.Execute("select * from test.csv where '[ID]' = '" & strId & "'") →ここからエラーになります。 strName = objRS("'[NAME]'").Value response.write("strName:" & strName & "<br>") strAge = objRS("'[AGE]'").Value response.write("strAge:" & strAge & "<br>") objRS.Close objAdo.Close %> select文内のwhere句で失敗しているように感じたので、 where '[ID]' = '" & strId の部分を下記の3パターンで 試してみたのですが、全てエラーが起きてしまいました。 where [[ID]] = '" & strId where {[}ID{]}' = '" & strId where [ID] = '" & strId CSVファイルのフォーマットは決まっている為、 現在のフォーマットで表示させたいのです。 お礼を言うのが少し遅くなってしまうかもしれませんが、 ご教示いただけると嬉しいです。

  • フォームのテキストボックスが空白なら"*"を入力する

    「フォームのテキストボックスが空白なら"*"を入力する」 としたいのですが If Form.承認者テキスト.Value = "" Then Form.承認者テキト.Value = "*" だと承認者テキストでも"*"が入力されません。 Form.承認者テキスト.Value = Null としてもできません。どうすればいいのでしょうか? よろしくお願いします。

  • VBScriptで<% %>の組み合わせについて

    お世話になります。 今、次のようなプログラムを書いています。 <% If Request.Form("Reference") = "スイッチ" Then Do Until ObjRS.EOF Response.Write"<input type=""radio"" value="""& ObjRS("番号")&""" name=""Check"">" <td width="5%"><%=ObjRS("日付")%></td> <td width="5%"><%=ObjRS("名前")%></td>     ObjRS.MoveNext LOOP End If %> このような書き方をすると、実行したときに ObjRS.MoveNext LOOP %> と画面上に表示されてしまい、ループがうまくいきません。 たぶん、ObjRS.MoveNextあたりからプログラムと認知されないで、 HTMLの記述だと認知されているんだと思うんですけど、修正方法がわかりません。 何か方法はあるのでしょうか? <参考> 開発言語:VBScript DB:SQLServer2000 開発マシンOS:WindowsXP Professional サーバOS:Windows2000 Server 開発ツール:FrontPage2000

  • 「Form_フォーム1.テキスト1.Value = "" 」がうまくいかない。

    VBAについての質問です。(オフィス2003) フォーム1にテキストボックス1を作成しました。 Module1に Sub test() If Form_フォーム1.テキスト1.Value = "" Then MsgBox "空白です" End If End Sub とコードを書き、テキストボックス1を空白の状態でtestを実行しても何も起こりません。 F8で一行づつ実行してみてみたら Form_フォーム1.テキスト1.Valueのところにカーソルを当てると Form_フォーム1.テキスト1.Value=Nullとなります。 どうすればテキストボックス1が空白なら「空白です」と表示させることが可能でしょうか? よろしくお願いします。

  • 空白と空白じゃないセルを判断するには?

    いつもお世話になっております。 条件により別のセルへ文字列を入力するという物を組みたいのですが、あてはめるべき表現の仕方がわからなくて困っております。 例で申しますと、 D列とE列に文字列が入っていたり空白だったりするセルが存在します。 条件は 「D列に何かしらの文字列が入っていて(特に決まった形が無い)、E列は空白の時だけ、F列へ「■」と入力し、G列は空白とする。」 「それ以外の条件はすべて、F列は空白、G列には「□」と入力する」 と、いうようにしたいのですが、空白は Dim i As Long For i = 3 To Range("B65536").End(xlUp).Row If Range("D" & i).Value = "" Then のように表現すればよいのかと思ったのですが、 「空白ではない」場合の条件をどのようにすればよいのかわかりません。(その為、全文を作る段階へ進めておりません。)   |D|E|F|G 1|あ| |■| 2|あ|え| |□ 3| |か| |□ 4| | | |□ 「空白ではない」と判断するコードの書き方をお教えいただきたく、よろしくお願いいたします。 環境はWindowsXP、Excel2003です。

  • VBscriptでAccessに接続。PCで結果が異なる。

    VBscriptでAccessに接続。 PC1ではDBの検索結果が表示されますが PC2では表示されません。 PC1はWindows XP Pro IIS Access 2000 PC2はWindows server 2003 IIs Access 2000 当然ながらソースは同じです。 プログラムの問題でしょうか。 それともなにか設定の問題でしょうか。 VBscript 部分 <% '========================================================================================================== Dim objCon Dim objRS Dim strSQL '======================================= dim objfs dim strFDIRNAME Set objFS = Server.CreateObject("Scripting.FileSystemObject") strFDIRNAME = Server.MapPath(".") 'フォルダー名取得 '======================================= '##### コネクションオブジェクトの生成 ##### Set objCon = Server.CreateObject("ADODB.Connection") '##### 接続用パレメータの設定 ##### objCon.Provider = "Microsoft.Jet.OLEDB.4.0" Set objRS = Server.CreateObject("ADODB.Recordset") '##### MDBの絶対パス指定 ##### objCon.ConnectionString =strFDIRNAME & "\" & "meibo.mdb" '##### コネクションのオープン ##### objCon.Open '##### SQLの作成 ##### strSQL = "select DISTINCT 社員名 from TABLE " '##### レコードセットのオープン ##### objRS.Open strSQL, objCon, 3 Recnm=objRS.RecordCount Do Until objRS.EOF %> <OPTION value="<%=objRS("社員名").value%>"><%=objRS("社員名").value%></OPTION> <% '##### 次のレコードを参照 ##### objRS.MoveNext Loop end if %> <% '##### コネクションのクローズ ##### objCon.Close '##### コネクションオブジェクトの解放 ##### Set objCon = Nothing '================ %>

  • JavaScriptでの空白チェックの方法

    ユーザー登録ページで、項目に空白が入っているかを調べたいと 思っています。 (入力する項目)  ・ユーザID ・パスワード ・名前(カナ)  ・性別(←ラジオボタンで選択する)  ・生年月日(←西暦のみ入力し、月日は選択メニューより選ぶ) このうち、性別と月日は未入力になることはないのですが、 他の項目に関しては、テキストボックスなので、以下のチェックを つけました。 <SCRIPT language="JavaScript"> <!-- function formCheck() { if (document.tourokuForm.userId.value == "" ||    document.tourokuForm.passWord.value == "" ||    document.tourokuForm.name.value == "" ||    document.tourokuForm.year.value == "" )  {    alert("すべての項目を入力してください。");    return false;  } } //--> </SCRIPT> という風なチェックを行っています。 項目の未入力チェックはうまくいくのですが、値ではなく、 「半角空白」、又は「全角空白」のみ入れたときにチェックされず、 空白のまま次のページへとんでしまいます。 コードを使って判断させようと思いましたが、リファレンスの通り に書いてもうまくいきませんでした。 もし知っておられる方がいましたら、ぜひ教えてください!

  • ASP.NET (VB) データのnull(空白)項目について

    現在、visual web developer 2005 expressで簡単な検索型のwebシステムを構築しています。 DBにはaccessを使用しています。vb.netでコードを記述しているのですが、 データ項目にnull(空白)項目があると"型が一致しません"とのアプリケーション エラーが出てしまいます。 どのように回避すればよいのでしょうか? コードは下記のように記述しています。 ================================================================================================= Private Sub set_data(ByRef d As Data.DataSet, ByVal i As Integer, ByRef txt As TextBox) If Len(d.Tables(0).Rows(0).Item(i)) > 0 Then txt.Text = d.Tables(0).Rows(0).Item(i) End If End Sub ================================================================================================= 上記は最下部に記述し上部にtextboxをフォームと対応させてブラウザで対応項目を表示させています。

  • AccessでNULLのデータを判断する方法

    ご指導、宜しくお願い致します。 Accessを経由してPostgresのデータベースへ データをインポートしていきたいのですが、 Accessから抽出したデータが空白か空白ではないのかを 判断させたいのですが、以下のように記述しているのですが、正しく判断されないようです。 どのように記述すればよいのでしょうか??? ---------------------------------------- SQL="SELECT 単価,フラグ FROM AAA_TBL" Set RS = Conn.Execute(SQL) IF RS(0) = NULL THEN  RESPONSE.WRITE "空白" ELSE  RESPONSE.WRITE "単価" END IF IF RS(1) = NULL THEN  RESPONSE.WRITE "空白" ELSE  RESPONSE.WRITE "フラグ" END IF ---------------------------------------- Accessdb:AAA_TBL フィールド名/データ型 単価/INT4 フラグ/varchar

専門家に質問してみよう