- ベストアンサー
ACCESSで空のフォームにクエリの値を追加する方法
- ACCESS2007を使っています。フォームで空のフォームから始めた時やウィザードでテーブルやクエリを対象とした場合でも、別のクエリの値を表示させたいのですが可能でしょうか?
- クエリに対してさらにクエリを与えて1フィールドになるようにし、それを配置できるといいのですが。
- もしくは、サブフォームのようなものでもいいのですが、フォームの作成時ではなく、後から追加する方法があれば知りたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
項目は非連結項目、 別のクエリの値を表示なので「DLOOKUP」とか使うようになると思います。
その他の回答 (4)
- piroin654
- ベストアンサー率75% (692/917)
>例えば、クエリの結果: >(ID)、(名前)、(売上) > 1 田中 100 > 2 佐藤 50 > 3 山田 220 >というのがあったとして、「100」「50」「220」というのを各各1つのテキストボックス >のようなものにできるといいと思っています。(IDをそれぞれに固定で指定します。) というなかで、 >100」「50」「220」というのを各各1つのテキストボックス >のようなものにできるといい というところをもう少し具体的に説明できますか。 クエリの結果は多分行数が不確定で量があると 思うのですが。
- DexMachina
- ベストアンサー率73% (1287/1744)
以下、【テーブル/クエリを元にした「連結フォーム」がご希望】と 推測しての回答です。 データを直接編集させたくない、といった理由で、非連結フォームを ご希望の場合は、他の回答者の方の回答を参照下さい(汗) > 別のクエリの値を表示させたいのですが可能でしょうか? 可能です。 フォームのデザインビューで手入力で設定する場合は、フォームの 何もないところをダブルクリックするなどしてフォームのプロパティ シートを開き、『データ』タブの『レコードソース』に、テーブル名や クエリ名を指定すればOKです。 なお、使用するテーブルやクエリによって、フィールド構成が異なる 場合は、データを表示する各コントロール(テキストボックスなど)の 『コントロールソース』等も合わせて変更する必要が生じますので、 ご注意下さい。 (『コントロールソース』の設定は、各コントロールのプロパティシート の『データ』タブで行えます) ※フォーム側は「レコードソース」、コントロールは「コントロール ソース」と、やや名前が紛らわしいので、合わせてご注意のほど。 > クエリに対してさらにクエリを与えて1フィールドになるようにし > それを配置できるといいのですが。 これは、複数の「フィールド構成が同じクエリ」の結果を、フォームに 1度に表示したい、ということでよろしいでしょうか。 そうであれば、これも「ユニオンクエリ」というものを使用すれば可能 です。 但し、このクエリは表示専用(=編集不可)になります。 また、通常の選択クエリなどと違って、このクエリはデザインビューで 表示・作成することもできないため、SQL文を記述する必要があります。 ただ、そのSQL文の構成自体は、それほど複雑ではありません。 【ユニオンクエリの作成方法】 ※元となるクエリの名前を「クエリ1」「クエリ2」「クエリ3」としました。 また、質問文中の「(IDをそれぞれに固定で指定します。)」を、 『「ID」は、レコードの元となっているクエリを識別するフラグ』と解釈 しての回答です。 1)新規クエリをデザインビューで開く (テーブルなどは特に指定しない) 2)メニューから「表示(V)→SQL ビュー(Q)」を選択 3)初期状態で表示されている文は削除して、以下のような文(SQL文)を 記述します: ~~~~~~~~ここからSQL文~~~~~~~~ Select 1 As ID, [名前], [売上] From クエリ1 Union Select 2 As ID, [名前], [売上] From クエリ2 Union Select 3 As ID, [名前], [売上] From クエリ3; ~~~~~~~~ここまでSQL文~~~~~~~~ 4)クエリを保存して閉じる ・・・以上です。 こうして作成したユニオンクエリをフォームのレコードソースに指定すれば、 複数のクエリの結果を一度に表示させることができます。 なお、「As ID」は、「1」などの表示フィールド名を「IDとして」表示させる、 という意味です。 (ちなみに、2行目以降の「As ~」は無視されますが、「ユニオンクエリ」が 単純な構造の繰り返しになっていることをわかりやすくする意味で表示) ※「Union」以外の各行は、通常の選択クエリ(絞り込みなどの条件なし)を SQLビューで表示させたものと変わりません。 なお、以下のようにして、文字列をフラグにすることもできますので、 合わせて参考まで: Select "08年度" As 年度, [名前], [売上] From クエリ1 Union Select "09年度" As 年度, [名前], [売上] From クエリ2 Union Select "10年度" As 年度, [名前], [売上] From クエリ3; ・・・以上、長文失礼致しました(汗)
- piroin654
- ベストアンサー率75% (692/917)
似たようなことに最近回答したことがあります。 以下のサイト。 http://oshiete1.watch.impress.co.jp/qa5857537.html 最初から作っておいて、非表示にしておき、必要に 応じて見えるようにする、という方法はありますが、 いずれにしてもコーディングの量はかなりのものに なります。
お礼
サイトを確認させていただきました。 ちょっと私には荷が重そうなので、無理にすることはやめようかと思います。 回答ありがとうございました。
- layy
- ベストアンサー率23% (292/1222)
フィールド3つ、3レコード 「1」 「田中」 「100」 「2」 「佐藤」 「 50」 「3」 「山田」 「220」 を フィールド3つ、1レコード 「1 田中 100」「2 佐藤 50」「3 山田 220」 ということでしょうか?。 要件がちょっとわかりません。
お礼
DLOOKUPというのは全く知りませんでしたので調べてみました。 まだ試していないのですが、見た感じではうまくいきそうな気がします。 回答ありがとうございました。