String値、Null値を含むレコードを表示する方法

このQ&Aのポイント
  • Access 2003でフォーム1とクエリ1とテーブル1があります。クエリ1の「テーブル1の番号フィールド」の抽出条件に、フォーム1の番号テキストとの一致を指定しています。しかし、テーブル1の番号フィールドにはNull値や空白のString値も含まれています。それらを含むレコードを表示するにはどうすれば良いでしょうか?
  • フォーム1の番号テキストに特定の文字列を入力し、コマンドボタンを押すと、その文字列を含むレコードが表示されます。しかし、文字列の入っているString値やNull値、空白のString値も含んだすべてのレコードを表示する方法について教えてください。
  • フォーム1とクエリ1とテーブル1があります。クエリ1の抽出条件にはフォーム1の番号テキストとの一致を指定しています。しかし、テーブル1の番号フィールドにはNull値や空白のString値も含まれています。これらも含めてすべてのレコードを表示するにはどのようにすればよいでしょうか?
回答を見る
  • ベストアンサー

文字列の入っているString値、何も入力されていないString値、Null値の全てを表示されるには?

access2003です。 フォーム1とクエリ1とテーブル1があります。 クエリ1の「テーブル1の番号フィールド」の抽出条件に 「Like "*" & [Forms]![フォーム1]![番号テキスト] & "*"」と入力しています。 フォーム1の番号テキストに「1」を入力しコマンドホ゛タンを押すと 「1」を含むレコードを表示され フォーム1の番号テキストに「*」を入力しコマンドホ゛タンを押すと 何かしらの文字列が入力されているレコート゛が表示されます。 しかし テーブル1番号フィールドには、 Null値と何も入力されていないString値(""←が入っている)も含まれています。 (見た目は空白どちらも空白です) (String値がある理由はADOを使って何も入力されてない値もまとめてレコードに追加している為) ここで質問なのですが フォーム1のコマンドホ゛タンを押したときに 文字列の入っているString値、何も入力されていないString値、Null値の全てを表示されるには どうすればいいのでしょうか? よろしくお願い致します。

noname#150256
noname#150256

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

> 何も入力されていないString値、Null値 は、 Len(Nz([フィールド名],"")) = 0 で得られます。 全てということであれば、 Len(Nz([フィールド名],"")) >= 0 になると思います。

noname#150256
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • フォームで入力された文字をクエリのフィールド名として反映させたい 【Microsoft Access】

    Microsoft Accessに関する質問です。バージョンは2003です。 フォーム"Fo1"に、テキストボックス"Te1"とクエリの実行を行うためのコマンドボタン"CB1"があるとします。コマンドボタン"CB1"を押すことでクエリ"Q1"が実行されるよう、イベント プロシージャに記載しています。クエリ"Q1"にはテーブル"Ta1"が表示されており、テーブル"Ta1"は複数のフィールド("Fi1","Fi2","Fi3",…)を有するものとします。 このような状況において、テキストボックス"Te1"に複数のフィールド("Fi1","Fi2","Fi3",…)のうちのどれかを記述し、コマンドボタン"CB1"を押したときに、テキストボックス"Te1"に記載されたフィールド名のデータを実行結果として出力したいと考えています。 そこで、クエリ"Q1"の「フィールド:」の部分に [Forms]![Fo1]![Te1] と記入し、「テーブル:」の部分に"Ta1"を指定した後、クエリを保存して(このときにはフィールド名の記入した部分は「式1: [Ta1].Forms![Fo1]![Te1]」と表示されています)閉じた後に、フォーム"Fo1"を開き、テキストボックス"Te1"に出力させたいフィールド名を記載しコマンドボタン"CB1"を押してみました。 すると、「パラメータの入力」というダイアログが立ち上がり、ダイアログ内には「Ta1.Forms!F01!Te1」という記述とテキストボックスが出力されました。テキストボックスに無記入で"OK"ボタンを押したところ、出力結果に「式1」という列が現れ全てのセルが空白となってしまいました。 フォームや、クエリに記入する表記が間違っているのか、そもそも出力させるフィールド名をフォームから指定するという方法が根本的に違うのかわかりません。 申し訳ありませんが、当方Accessに関しては初心者ですので、極力専門用語は少なくご教授いただければと思います。よろしくお願いします。

  • パラメータクエリを一つにまとめたい

    クエリ1を基にフォーム1を作成、 クエリ2を基にフォーム2を作成、 クエリ1も2もパラメータクエリを使用していて フィールド名は「番号」データ型はテキスト型です。 そして新規にフォーム3を作成しフォーム1とフォーム2をドラッグしました。 この状態でフォーム3をダブルクリックすると パラメータの入力を2回求められますがどちらも同じ番号を入力しています。 (「001」などを2回入力) これを1回にすることは可能でしょうか? ・番号フィールドの基テーブルはクエリ1と2は違うテーブルです。 ・クエリ1と2は一つにまとめたくありません。 フォーム3上に別々に表示させたいです。 ・クエリ1には全ての番号がありますがクエリ2には抜けている番号があります。 「クエリ1の全レコードとクエリ2の同じ結合フィールドのレコードだけを含める。」で全ての番号を表示できる状態です。 説明が下手ですいません。 アドバイスお願い致します。

  • NULL値を含む場合のフィルタ

    アクセスです。 テーブルに フィールド1 フィールド2 A    B       B  C       C と入ってるとします。 フィールド2についてはNULL値のレコードもあれば、 値が入ってる場合もあります。 このテーブルをフォームにひもづけていて、(帳票フォームにしています) フォームヘッダーにテキストボックス2つとコマンドボタンがあり Private Sub コマンド_Click() Me.Form.Filter = _ "フィールド1 like '*" & Me.テキスト_1.Value & "*'" & " and " _ & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" Me.Form.FilterOn = True End Sub としたときに、レコードのフィールド2に文字が入ってる場合は、抽出できるのですが、 フィールド2がNULLの場合は、1件もヒットしません。 テキスト_1にはAを入れて テキスト_2には何も入れないで検索してみると、1件もヒットしませんが、 テキスト_1にBを入れて検索すると、Bのレコードが抽出されます。 もちろん テキスト_1もテキスト_2もBをいれても、Bのレコードが抽出されます。 VBAコードで & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" としてるので、NULL値でも抽出されると思ったのですがなぜ何も抽出されないのでしょうか? ワイルドカードでnull値も検索されないのでしょうか? テーブルのフィールド2のデータをNull値ではなく、””にしたら、問題なく抽出されましたが データのNull値はNull値のままにして、空白などの文字には置き換えたくないです。 (というか、すべてのNULL値に空白を入れる作業が大変なのでやりたくないです。 実際のフィールド数は50個くらいあります) よろしくお願いします。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • Access2000:[パラメータの入力]ダイアログを表示されないようにするには

    初心者です。よろしくお願いします。 フォームが完成したあとで、クエリ/テーブルから削除したいフィールドが発生してしまいました。 削除したいフィールドのコントロールをフォームから消した後に、クエリ/テーブルからフィールドを削除しました。 削除したあとにフォームを開いたところ、[パラメータの入力]ダイアログボックスが表示されてしまいました。(メッセージは"開こうとしているフォーム名" クエリ:"削除したフィールド名"です) このダイアログボックスが表示されないようにしたいのですが、どうすればよいでしょうか。 ちなみに削除したフィールドは単なるテキスト型で、選択クエリでも抽出条件等は設定していませんでした。 初歩的な質問ですみませんが、よろしくお願いします。

  • Access 文字列検索

    Aというテーブル(フィールド数:4、データ数:不定)とBというテーブル(テーブル構造はAと全く同じ)があります。 フォームでテキストボックスに文字列を入力しコマンドボタンをクリックすると、 Aの全フィールドの全データから入力された文字列を検索し、 Bのデータを全削除してから、該当したデータをBに追加するような機能を作りたいです。 ExcelのVBAは多少わかりますが、Accessはほとんどわからない初心者です。 どなたか親切な方、教えて下さい。 宜しくお願い致します。

  • Access2000のフォームで番号を入力するとその他の情報が表示されるようにするには?

    入力フォームで番号を入力すると、名前などが同じフォームに表示される。 というのを作っているのですが。 テーブル1:ID・番号 テーブル2:番号・名前など(エクセルとリンク) クエリーで番号を1→2と繋ぎ、番号はテーブル2を使用。 (1)テーブル1が空欄だと何も表示されない。 (2)テーブル1に入力すると表示されるが、フォームで番号の入力はできない。 (3)新しいレコードも作製できない。 数年前に似たようなものを作った筈なのですが、そもそも出来ないのでしょうか。 宜しくお願いします。

  • [ASP+SQLserver]NULLではない空白の列をWHERE?

    こんにちわ。 まず、お手数ですが↓をご覧ください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=809910 これは前回私がここで書き込んだ内容です。 ここに記載されている内容でNULLの事は解決できました、、、しかし。 ・・・省略 rsSample("namae") = "" rsSample.Update と = "" ← こうした場合このフィールドはすでにNULLではないと思われます。 この場合、クエリとしては NULL と表現できないと思いますが、どのようにしてやれば 該当するフィールドがNULLではなく空白であるレコードをWHEREできますか? また、NULL又は空白であるレコードをWHEREしたい場合は・・・単純にANDで結んでやればいいのでしょうか? お手数をおかけ致しますが宜しくお願い申し上げます。

  • Requeryしても並べ替えはされないのでしょうか

    【条件】*************************** (テーブル1) フィールド1 1 2 3 4 5 (クエリ1) SELECT テーブル1.フィールド1 FROM テーブル1 ORDER BY テーブル1.フィールド1; (フォーム1) レコードソース:クエリ1 既定のビュー:帳票フォーム コマンド3:コマンドボタン Private Sub コマンド3_Click() Me.Requery End Sub ************************************ 上記の条件で、3レコード目の「3」を「10」に変更し、 コマンド3を押下しても、10は3レコード目のままです。 フォーム1をバツボタンで閉じて、フォーム1を開きなおすと10は一番下に来ます。 Requeryで更新しているのに、なぜ並び替えがされないのでしょうか?

専門家に質問してみよう