• ベストアンサー

変数の内容がNullと認識して、条件分岐するには?

例えば、flagという変数があります。 この変数の内容がNull(空白)であるかどうかの区別はどうすればいいでしょうか? イミディエイトの窓で以下を実行してみたら、 ? flag Null if flag = Null then ? "真" else ? "偽" 偽 となります。flagはNullなのに、何故"偽"なんでしょう?どうすれば、真と判断してくれるのでしょうか? よろしくお願いします。

  • hiroi
  • お礼率89% (223/248)

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

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

ホームページ作成ソフトだからjavascriptかと思ったけど VB臭いので一応紹介 http://www.accessclub.jp/supbeg/053.html

hiroi
質問者

お礼

himajin3500さん おお、ありがとう!早速の回答とまさしくそれでした。解決できました!!! 本当に感謝します。

関連するQ&A

  • NULLの定義について

    C言語で、NULLとの比較を行う関数として、 strcmp関数を使用したいと考えています。 ある、文字列変数に、 "あいうえお"が入っている場合、 ""(何もない)の場合、 下記の例で真の処理と偽の処理、 どちらを通るのでしょうか。 当然、文字列変数が"あいうえお"の場合は、 真の処理を通ると思いますが、 ""(何もない)の場合が分かりません。 例として、 ~中略~ if( strcmp( 文字列変数, NULL ) != 0 ){ 真の処理 }else{ 偽の処理 } ~中略~ の時です。 言語によって、NULLは「0」と定義されていたような 記憶もありますが・・ したい事は、文字列変数が""の場合、 偽の処理をするようにしたいです。 プログラムの作り方を教えて下さい。

  • caseを使った条件分岐の加算がうまくいかない

    SQLで条件によって加算するか、しないかを判定したいと思っています。 ■テーブル:test name,flag,number mike,4,1 mike,4,2 mike,5,3 mike,6,4 mike,7,5 mike,8,6 mike,9,7 ■書いたSQL SELECT test.name AS "name", (CASE WHEN flag = '4' THEN sum(number) ELSE NULL END) AS "4", (CASE WHEN flag = '5' THEN sum(number) ELSE NULL END) AS "5", (CASE WHEN flag = '6' THEN sum(number) ELSE NULL END) AS "6", (CASE WHEN flag = '7' THEN sum(number) ELSE NULL END) AS "7", (CASE WHEN flag = '8' THEN sum(number) ELSE NULL END) AS "8", (CASE WHEN flag = '9' THEN sum(number) ELSE NULL END) AS "9" FROM test GROUP BY test.name ■結果 4,5,6,7,8,9 null,null,null,null,null,28 欲しい結果は、フラグが4ののものの合計。flagが「4」の場合は、「3」という結果が返ってきてもらいたいです。 flagが5の場合は、3が返ってきてもらいたいです。 SQLが間違っているのですが、どこが間違っているのかわかりません。どのように修正すればよろしいでしょうか?よろしくお願いします。 環境はSQLiteを使用しています。

  • NULLを含むフィールド値の条件分岐

    どなたかご存知の方はご教示願います。 使用言語はVB6_SP5、DBはMdb(アクセス97形式)です。 ADOでDBに接続し、レコードセットを取得しそのレコードの任意のフィールドの値により処理を3通りに分けたいのです。(値はNULL、"1"、"9" の3つです。) IF文で条件分岐を行いたいのですが、うまく振り分けができずにおります。 IF ISNULL(RS.FIELDS("HHH").VALUE) THEN NULLの場合の処理 ELSE "1"の場合の処理 END IF ' "9" の場合はなにもしない 結果は全てNULLの場合の処理を実行してしまいます。 どこを修正すれば宜しいのでしょうか?

  • 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

  • 条件分岐

    以下の条件分岐について教えてください。 条件:str の 文字に ”0.0”や”0000”などの入力があっ   た場合、NG_FLAGを返したいのです。 どこがいけないのか、教えてください。 int CheckData2(char *str) {  if (str[0] == '0');{   printf("%c", str[0]);   if (str[0] == '0' && str[1] == '.'){    puts("CheckData2はOK_FLAG");    return OK_FLAG;   } else if (str[0] == '0' && str[1] == '.'){    puts("CheckData2はNG_FLAG;");   return NG_FLAG; } } puts("CheckData2はOK_FLAG"); return OK_FLAG; }

  • 3ビットのフラグを持つ2個の変数の組み合わせによる分岐の上手な書き方

    お世話になります。 C言語において、3つの状態を持っている変数で状態の組み合わせによって分岐するプログラムを作りたいと思っています。 3ビットのフラグによって2進数で001,010,100の3個のどれかの状態であるとして、以下の条件で分岐させるさせたいです。 ・2個とも同じ状態のとき ・片方が001,010で、もう一方が100 ・片方が001で、もう一方が010 自分では以下のように書いたのですが、条件式もっと簡潔に書くことはできないでしょうか?よろしくお願いいたします。 #include<stdio.h> typedef struct{ int name;//識別番号 unsigned int flag:3;//状態を表すフラグ }Status; int main(void) { Status a,b;//例として2変数のみ定義 a.name=10; a.flag=1; b.name=20; b.flag=2; if(!(a.flag^b.flag)){ printf("2個とも同じ状態のとき\n"); } else if( ( (a.flag&1 || a.flag&2) && b.flag&4 ) || ( a.flag&4 && (b.flag&1 || b.flag&2 ) ) ){ printf("片方が001か010で、もう一方が100\n"); } else if( (a.flag&1 && b.flag&2) || (a.flag&2 && b.flag&1) ){ printf("片方が001で、もう一方が010\n"); } }

  • 【エクセル】ActiveCellはなぜNullではないのでしょうか?

    私は今まで新規のシートを挿入した際のActiveCellは、Nullだと思っていたのですが Sub Empty空白なら() If ActiveCell.Value = Empty Then Debug.Print "空白セルです" End Sub Sub Null空白なら() If ActiveCell.Value = Null Then Debug.Print "空白セルです" End Sub Sub Null空白なら2() If IsNull(ActiveCell.Value) = True Then Debug.Print "空白セルです" End Sub VBAでこのコードを実行すると Emptyの方だけ「空白セルです」となりました。 (1)なぜ空白でもNullだと反応しないのでしょうか? (2)NullとEmptyの違いはなんですか? ご教授よろしくお願い致します。

  • myRange = Null

    VBA Professional Office 2003の試験問題ですが http://vbae.odyssey-com.co.jp/study/sample_2003.html Sub Sample1() Dim myRange As Range On Error Resume Next '――(1) If myRange = Null Then '――(2) Debug.Print "OK" '――(3) Else Debug.Print "NO" '――(4) End If End Sub の(3)が実行されるのは、 myRange = Null が正しいからではなく、 (2)のIf myRange = Null Thenのコードが無視されたから 次のコードの(3)がたまたま実行されただけですか? (2)をIf myRange <> Null Thenにしても OKになりました。

  • Nullについて

    こんばんは!よろしくお願いします。 新規に作成したフォームにコンボボックスを設置して Sub test1() If Form_フォーム1.コンボ0.Value = Null Then Form_フォーム1.コンボ0.Value = "" End If MsgBox Form_フォーム1.コンボ0.Value End Sub Sub test2() If IsNull(Form_フォーム1.コンボ0.Value) = True Then Form_フォーム1.コンボ0.Value = "" End If MsgBox Form_フォーム1.コンボ0.Value End Sub 上記2つのサンプルを実行した時に、 test1のほうだけ 実行時エラー94 Nullの使い方が不正です。 となります。 ウォッチウインドウで見ていくと、 「オブジェクト変数、またはwithブロック変数が設定されていません。」 となりますが 「If Form_フォーム1.コンボ0.Value = Null Then」 を通過したら Nullになります。 何が起こっているのでしょうか?

  • AccessVBA NULLについて

    いつもお世話になっております。 AccessVBAでコーディングを始めたのですが、 NULLの判定で分からない点がでてきました。 データベースより If rs.Fields(0) = Null Then Else 区分 = rs.Fields(0) End If この場合、rs.Fields(0)の中身がNULLの場合は rs.Fields(0)のデータを入れるとエラーになるので ELSEで逃がしたいのですが、 中身のデータがNULLにもかかわらずELSEの方を通ってしまいます。 If rs.Fields(0) Is Null Then Else シール = rs.Fields(0) End If こちらかとも思いましたが、オブジェクトが必要とエラーが返ってきました。 NULLをIF分で判定したい場合どのような記述を行えばよいでしょうか。 どうぞよろしくお願い致します。

専門家に質問してみよう