VBAの記述で、フォームを開くときにレコードの抽出条件を指定できますが、その際,指定したフィールドの値がNullのもの、逆にNullLでないものという条件の与え方はできないのでしょうか?
値がある文字列と等しいとかある数値や日付以上といった条件式はヘルプでみるのですが、NullかNullでないといった判断をさせる条件式が参考書等でもみあたらないのですが。
 それとも何か違うやりかたがあるのでしょうか?ご存知のかたは教えてください。

A 回答 (1件)

ACCESSのフォームフィルタの件ですか?


であれば
[フィールド名] Is Null ・・・Nullのデータだけ
[フィールド名] Is Not Null ・・・Null以外
を指定できませんか?
私の環境(ACCESS2000)ではできました。
    • good
    • 0
この回答へのお礼

sghさん、ありがとうございました。解決しました。
最初 ダブルクォーテーションで囲まずにやったら
「指定した式で参照されている'|'フィールドが見つかりません。」というエラーメッセージが返ってきたので焦りましたが、ちゃんと"[フィールド名] Is Null "と直したらできました。
 すごくシンプルな記述なのに、なんで試して見なかったのか自分にあきれています。
助かりました。本当にありがとうございました。

お礼日時:2002/01/31 00:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの関数 指定した値の間で、指定した値以上の値を示す、最初の値を求めたい。

こんにちは。

一列目で指定した値の間で、二列目で指定した値以上の値を示す、一列目の最初の値を求める関数を教えてください。

添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値以上の値(F3と同じ値を含めてF3の値よりも大きい値)がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
を求める関数が知りたいです。

どうぞよろしくお願いします。

Aベストアンサー

No.1・2です。

補足を読ませていただいて・・・
大きな勘違いをしていました。

今までの方法はF2セルの値以上の範囲内の最小値と完全一致するA列データが返るはずです。
(今回の画像の配置だと「5」以上の最小値=「5」と一致する「10」が返ります)
No.1・2は無視してください。

本来のご希望はA列範囲内でF2セル以上の値が最初に出現する行のA列データを表示したい!
というコトですよね?

方法は前回同様ですが、数式が長くなりますので、
大前提として、お示しの画像のようにA2セル以降に1からの数値が抜けることなく整数でA列に入っているとします。

F5セル(今回も配列数式です)に
=INDEX(INDIRECT("A"&F3+1&":A"&F4+1),MIN(IF(INDIRECT("B"&F3+1&":B"&F4+1)>=F2,ROW(INDIRECT("A"&F3+1&":A"&F4+1))-F3)))
という数式を入れてみてください。

※ A列データが連続した整数でない(途中の数値が抜けている)場合は
今まで通りMATCH関数で行番号を取得する必要がありますので、
数式はもっと長くなってしまいます。

今度はどうでしょうか?m(_ _)m

No.1・2です。

補足を読ませていただいて・・・
大きな勘違いをしていました。

今までの方法はF2セルの値以上の範囲内の最小値と完全一致するA列データが返るはずです。
(今回の画像の配置だと「5」以上の最小値=「5」と一致する「10」が返ります)
No.1・2は無視してください。

本来のご希望はA列範囲内でF2セル以上の値が最初に出現する行のA列データを表示したい!
というコトですよね?

方法は前回同様ですが、数式が長くなりますので、
大前提として、お示しの画像のようにA2セル以降に1...続きを読む

Qエクセルの関数です。一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める。

エクセルの関数です。
一列目で指定した値の間で、二列目で指定した値を示す、一列目の最初の値を求める関数を教えてください。
添付した図で、具体的に説明します。
A列に値(時間)、B列に値があります。
この配列の中から、
F4の値(時間)と同じ値(時間)を示すA列の行から、F5の値(時間)と同じ値(時間)を示すA列の行までの中で、
F3の値と同じ値がB列にある、A列の値(時間)の内、
A列で上から最初の値(時間)
です。

min、offset、index、match を組み合わせてみるのですが、うまくいきません。
どうぞよろしくお願いします。

Aベストアンサー

こんにちは!

画像の配置でF6セルに「7」という結果が返れば良い訳ですかね?

少し長くなりますが、
=INDEX(INDIRECT("A"&MATCH(F4,A:A,0)&":A"&MATCH(F5,A:A,0)),MATCH(F3,INDIRECT("B"&MATCH(F4,A:A,0)&":B"&MATCH(F5,A:A,0)),0))
という数式を入れてみてください。

※ F3セルは質問に載っていないので余計なお世話かもしれませんが
同じようなやり方で
=MAX(INDIRECT("B"&MATCH(F1,A:A,0)&":B"&MATCH(F2,A:A,0)))
という数式になると思います。

※ エラー処理はしていません。m(_ _)m

Qエクセルのセルで式で計算された数値を式なしの数値だけにする方法は?

タイトルの通りですが、例えば、A1のセルに、計算式が入っていて、その計算式による数値が表示されているとします。
A1のセルの数値だけを、コピーして、別のファイルにコピーしたいのですが、A1のセルの計算式による数値だけを(計算式ごとコピーすることなく)コピーする方法はありませんか?
よろしくお願いします。

Aベストアンサー

 コピー(Ctrl+C)し、コピー先のセルで右クリック。
 「形式を選択して貼り付け」を選択。
 それから、「値」を選択して、[OK]です。

Q複数の条件を指定して数値をかえす方法

複数の条件を指定して数値を返したいと思っています。


Sheet1                Sheet2
   A     B   C          A    B    C
1 りんご   東   2        1      りんご
2 ばなな   西    1        2 東  
3 りんご   南   1        3 西
4 みかん  北    3        4 南
                      5 北  
                                
Sheet2のB1に入っている「りんご」と「A列の地域」は固定となります。

Sheet2のB1に入っている「りんご」と「A列の地域」がSheet1で該当する場合
Sheet2のB2からB5までの各セルにSheet1の「数」が反映する計算式を入力
していきたいと考えています。

<結果>
Sheet2のB2~B5の返す数値は

   りんご
東  2
西  0
南  1
北  0

となるようにしたいです。

また画像を添付しましたのでイメージを載せておきます。
ご助言頂ければ助かります。
よろしくお願いします。

複数の条件を指定して数値を返したいと思っています。


Sheet1                Sheet2
   A     B   C          A    B    C
1 りんご   東   2        1      りんご
2 ばなな   西    1        2 東  
3 りんご   南   1        3 西
4 みかん  北    3        4 南
                      5 北  
                           ...続きを読む

Aベストアンサー

Sheet2のB2セルに以下の式を入力し下方向に(1行目に項目名がある場合は右方向も)オートフィルコピーしてください。

=SUMPRODUCT((Sheet1!$A$3:$A$100=B$1)*(Sheet1!$B$3:$B$100=$A2)*Sheet1!$C$3:$C$100)

2007以降のバージョンをご使用なら以下の数式の方が計算負荷が少ないのでお勧めです。

=SUMIFS(Sheet1!$C$3:$C$100,Sheet1!$A$3:$A$100,B$1,Sheet1!$B$3:$B$100,$A2)

Q◇セルに任意の数値を入力した数値を条件付き書式に反映させる◇

◇セルに任意の数値を入力した数値を条件付き書式に反映させる◇

セルに任意の数値を入力した数値を条件付き書式に反映させ、状況に応じて
色付ける幅をかえたいと思います。

その都度、指定を変更すればいいのでしょうが、広範囲なのとマクロを組んでいるので
セルに毎回違う数値を入れて条件付き書式を使用したいと思っております。

何かよい方法があれば教えて頂きたいです。
宜しくお願いします。

Aベストアンサー

例えばA2セルから下方に日付が、例えば9月1日から9月30日までが入力されているとします。
そこで例えば9月10日から9月20までのセル範囲に色を付けるためにB1セルに9/10,C1セルに9/20と入力するとします。
その後にA列で日付の入力されている範囲を選択します。上記の場合でしたらA2セルがアクティブな状態になっていることでしょう。
そこで「ホーム」タブの「条件付き書式」から「新しいルール」を選択します。
表示の画面で「数式を使用して書式設定するセルを決定」を選択し、下の窓には次の数式を入力します。

=AND(A2>=$B$1,A2>=$C$1)

その後に同じ画面の「書式」をクリックして「塗りつぶし」のタブから好みの色を設定してOKします。

これで完成ですが、入力した式ではB1セルやC1セルの日付を変更すればそれに応じて条件付き書式の条件が自動的に変わり色付く日付の範囲も変わります。参考になりましたら幸いです。


人気Q&Aランキング

おすすめ情報