Accessフォーム/レポートのテキストボックスの表示について

このQ&Aのポイント
  • Access2000でクロスクエリーを元にしたフォームで、フィールドが存在しない場合でもエラーにせずに空白を表示する方法を教えてください。
  • クロスクエリーを使ったフォーム上で、特定の条件でフィールドを表示する方法を教えてください。
  • Accessのフォーム/レポートで、フィールドがない場合や条件によって表示を切り替える方法を教えてください。
回答を見る
  • ベストアンサー

Accessフォーム/レポートのテキストボックスの表示について

Access2000で クロスクエリーを元にしたフォームで、フィールドが存在しない場合でも エラーにせずに空白を表示したいのですが、うまくいきません。 なるべくなら複雑なVBAは使わずに作りたいのですが よい方法がありましたら教えてください。 例えば下のようなデータになるクロスクエリーがあります。 (a,b,cは一つのフィールドです)     a b c ----------- 北海道 1 1 0 東北  2 0 1 関東  0 1 1 ・ ・ それを条件をつけて北海道のみにした場合、次のようになります。     a b  北海道 1 1 フォーム上では、全てのとき(a,b,c全てある)と1つを選択したとき(cがない)でも ないフィールドは0として表示したいのです。 わかりにくい説明かもしれませんが、よろしくお願いします。

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

  • ベストアンサー
  • yatoaa
  • ベストアンサー率30% (110/362)
回答No.3

1.事前にテーブルを作成しておきます   テ-ブルには必要項目は全部定義します   **テ-ブルaとします 2.テ-ブルaを全件削除します(削除クエリー) 3.クロス集計します(既存のクエリー) 4.クロス集計の結果をテ-ブルaへ追加します      (追加クエリー) 5.テ-ブルaでのnull値を0にします    (更新クエリー) 6.テ-ブルaでフオームへ表示 でどうでしょうか

Necoron
質問者

お礼

ありがとうございます。 この方法ならレポートでも同じことができるので、とりあえずやってみます。 表示する前に一連の作業を実行させるための、準備はありそうですが 時間もかからずにできそうです。 すみません。補足とお礼,間違えてました。 <No 1、2の方 m(_._)m

その他の回答 (3)

  • o23
  • ベストアンサー率36% (64/175)
回答No.4

もしかするとはずしてるかもしれませんが、簡単な方法として a,b,cの各コントロールの書式に #,##0;-#,##0;0;0と設定したらどうでしょう? (とうぜん数値型か通貨型ですよね?) 4番目はデータがnullの時の表示です。

回答No.2

PIVOT句を使用します クエリの場合では、 クロス集計クエリの「列見出し」のプロパティ「クエリ列見出し」に 表示したい列見出しを指定します

Necoron
質問者

お礼

締め切ってしまった後にすみません。 答えの内容を勘違いしていました。 後で気が付いて、この方法でよいのだとわかりました。 直接指定できるのですね。

Necoron
質問者

補足

ありがとうございます。 現在、列見出しには a,b,c のデータが入っている フィールド名で指定してあります。 直接 表示したい内容を指示することはできるのですか?

noname#7099
noname#7099
回答No.1

クロスクエリーの前に ユニオンクエリーで「かならず、abcがあるレコード」を追加して、 クロスクエリーの後に、 選択クエリーで追加したレコードを抜いてしまえないかしら。

Necoron
質問者

補足

さっそくありがとうございます。 ただ、「かならずabcが存在する」キーが何かはその時によって変わるため それをやろうとすると、自分でデータを作成して a,b,c,それぞれ3件 追加しなければなりません。 詳しくは書いていないのですが、他にも複雑な条件がいろいろあるので 元のデータに表示させるための架空のデータを追加することは難しいです。

関連するQ&A

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

  • Accessフォームから条件抽出する

    access2010で、フォーム内のリスト選択によって、 クエリのフィールドの計算を変えたいです。 「クエリ1」のフィールド名 いずれも数値 ・合計 ・A ・B ・C 「フィールド1」の「リスト1」で、1;2;3いずれか選択し、 選択した結果を「合計」に表示させたい。 ・リスト「1」のとき、Sum(A,B) ・リスト「2」のとき、Sum(A,B,C) ・リスト「3」のとき、Sum(A,B,C,D) できれば「合計」のフィールドの式のみで済ませたいのですが、 何か適切な式はありませんでしょうか。 よろしくお願いいたします。

  • クロス集計クエリの合計 テキストボックスに表示

    クロス集計クエリの合計と、フォームのテキストボックスに表示させたいのですが無理でしょうか? クロス集計クエリの行見出しには会社名A社B社が入っていて、 合計 金額フィールドには各会社の合計金額が入っています。 そのクロス集計クエリを元にサブフォームを作り、 親フォームにはめ込んだのですが その親フォームにテキストボックスを設置し、 クロス集計クエリの合計 金額フィールドの合計を表示させたいのですが サブフォームのレコードをクリックするたびに、 親フォームにテキストボックスに表示される値は、そのアクティブなレコードの値になってしまいます。 テキストボックスのコントロールソースは =[テーブル1のクロス集計のサブフォーム].[Form]![合計 金額] としています。 A社B社のそれぞれのクロス集計クエリを作成し、 それぞれを足すしか、テキストボックスに合計を表示させる方法はないでしょうか?

  • ACCESSのフォーム操作について

    vbaが全く分からない初心者です。 あれこれ調べてみましたが、分かりませんので 教えてください。 ACCESSでフォーム作成をしています。 テーブルA テーブルB テーブルC があり、フィールドは全て共通しています。 フォームに、コンボボックスを設けテーブル名を表示させ クリックするとそのテーブルのデータをフォームに表示させる ということがやりたいのですがどうすればよいでしょうか。 (例 テーブルCを選ぶとフォームにテーブルCのデータを表示) 本来なら初歩的な事から勉強をした方がいいのですが 仕事の作業でどうしても必要になり、急いでおります。 参考になりそうな、ページやvbaがありましたら教えて 頂けないでしょうか。 宜しくお願い致します。

  • ACCESSのテキストボックス内の任意の文字

    お世話になります。 宜しくお願い致します。 ACCESS2010についてになります。 [フォームA]の[テキストボックスa]に、ある文字が含まれていたら、[テーブルB]の[フィールドb]を検索して、[フィールド'c]の値を[フォームA]の[テキストボックス'a]に表示させたいと思います。 (例) 『信長』が入っていたら、検索結果を表示させる。 [フォームA] [テキストボックスa] 『徳川家康』 ⇒  検索しない。 『織田信成』 ⇒  検索しない。 『織田信長』 ⇒  [テーブルB][フィールドb]を検索する。 [テーブルB] [フィールドb] [フィールド'c] 明智光秀 あけちみつひで 織田信長 おだのぶなが ⇒ 結果を表示する。 [フォームA] [テキストボックス'a] おだのぶなが おわかり頂けますでしょうか。 上手く表現できずにすみません。 お手数ですが、ご教示頂ければと思います。 宜しく、お願い致します。

  • (アクセス)レポートで作成した番号をフォームに表示できますか?

    QNo.2559017で質問を締め切りましたが再度問題が発生したので 教えて頂きたいと思います。 ---------------------------------------------- 求人テーブル(フォーム)に以下のフィールド(?)があります。 会社名 学科   学科日付   学部  学部日付 A社  学科宛  2006/11/21  学部宛 B社  学科宛         学部宛  2006/11/25 C社  学科宛  2006/11/25  学部宛 D社  学科宛  2006/11/24  学部宛  2006/11/20 ------------------------------------------------------ これを基に、それぞれ日付順に下記のクエリを作成しました。 学科クエリ           学部クエリ 2006/11/21 A社       2006/11/20 D社 2006/11/24 D社       2006/11/25 A社 2006/11/25 C社 そしてそれぞれのレポートを作成し、 教えて頂いた方法で受付番号をつけることができました。 ここまでは良かったのですが、 フォームで会社名を検索して該当する会社名が表示された時に その会社の受付番号を表示することができないのです。 レポートで作成した受付番号をフォームに表示することはできるのでしょうか? 下手な説明で申し訳ありません。 アドバイスお願い致します。

  • アクセスのクエリでパラメータを表示させない方法は?

    超初心者の質問ですみません。。 アクセスのクエリで、ある数字の全体に対して占める割合を求めるため、以下のような式をいれています。 フィールドC: [フィールドA]/[フィールドB] このクエリを開いたときに毎回パラメータが表示されるのですが、これを表示させないためにはどのようにすればよいのでしょうか?OKを2回押せばきちんと計算された値が入ってくるのですが、毎回OKを押さずに開けるようにしたいです。 ちなみに、フィールドAとフィールドBは、あるテーブルに入っている値をクエリ側で 集計 を「合計」に設定して求めた値が入っていて、フィールドA~Cは同じクエリの中にあります。 VBAやSQLはまったく理解できません。 よろしくお願いします。

  • アクセスフォームで2つを結合テキストボックス

    アクセス2000を使っています。 フォームで2つのテキストボックスの内容を並べて表示するテキストボックスを作成するには、どのようにコントロールソースに入力したら良いでしょうか? =[フィールド名]&[フィールド名] ではErrorやName?、「-1」などが表示されてしまいました。 (&の前後に半角空白を入れたりしました。) よろしくお願いいたします。

  • フォームの作り方 アクセス2000

    アクセス2000を使い始めた初心者です。 顧客群に関するテーブルAがすでにあります。 このテーブルは事情があって、フィールドを追加することはできません。 もうひとつのテーブルBを作って、こちらに情報を追加するためのフィールドをいくつか作ります。 やりたいことは、 入力用のフォームに、テーブルAの情報内容を表示させて、テーブルBの入力をしたいのです。 クエリを作ってリレーションを設定するのだろうと思うのですが、具体的に進め方がわかりません。 よろしくお願いします。

  • ACCESSのクエリで表示されるデータについて

    クエリで表示されるデータの範囲について教えてください。 <状況例> 例えばなのですが、取引先会社の管理データベースとして「テーブルA」と「テーブルB」があったとします。 「テーブルA]のフィールドは「会社ID」、「会社名」、「住所」とします。 「テーブルB]のフィールドは「連絡先ID」、「会社ID」、「担当者名」とします。 そして、「会社ID」をリレーションシップで繋いで、クエリで「テーブルA」「テーブルB」の全てのフィールドを表示したとします。 この時、「テーブルA」にデータが5つあり、「テーブルB」にはデータが2つしかなく、結果リレーションシップを通じて対をなすデータが2つしかない場合には、クエリでは2つしかデータが表示されないと思います。 <質問> クエリではリレーションシップで対をなさないデータは無効となるようですが、対をなさないデータも全てクエリで表示する方法はないのでしょうか。 上記例でいうと、「テーブルA」のデータ5件全てについて表示させたいのですが。もちろん、「テーブルA」のデータ中対をなしていないものについては、「テーブルB」のフィールド内容については「空白」での表示となりますが。

専門家に質問してみよう