dポイントプレゼントキャンペーン実施中!

ACCESSで空のフォームにクエリの値を追加する方法

ACCESS2007を使っています。
フォームで空のフォームから始めた時やウィザードでテーブルやクエリを
対象とした場合でも、別のクエリの値を表示させたいのですが可能でしょうか?


可能であれば、
クエリに対してさらにクエリを与えて1フィールドになるようにし
それを配置できるといいのですが。

例えば、クエリの結果:

(ID)、(名前)、(売上)
 1   田中   100
 2   佐藤    50
 3   山田   220

というのがあったとして、「100」「50」「220」というのを各各1つのテキストボックス
のようなものにできるといいと思っています。(IDをそれぞれに固定で指定します。)


できなければ、サブフォームのようなものでもいいのですが、
フォームの作成時ではなく、後から追加する方法があれば知りたいです。

よろしくお願い致します。

A 回答 (5件)

項目は非連結項目、


別のクエリの値を表示なので「DLOOKUP」とか使うようになると思います。
    • good
    • 0
この回答へのお礼

DLOOKUPというのは全く知りませんでしたので調べてみました。
まだ試していないのですが、見た感じではうまくいきそうな気がします。
回答ありがとうございました。

お礼日時:2010/05/30 13:16

>例えば、クエリの結果:



>(ID)、(名前)、(売上)
> 1   田中   100
> 2   佐藤    50
> 3   山田   220

>というのがあったとして、「100」「50」「220」というのを各各1つのテキストボックス
>のようなものにできるといいと思っています。(IDをそれぞれに固定で指定します。)


というなかで、

>100」「50」「220」というのを各各1つのテキストボックス
>のようなものにできるといい


というところをもう少し具体的に説明できますか。
クエリの結果は多分行数が不確定で量があると
思うのですが。
    • good
    • 0

以下、【テーブル/クエリを元にした「連結フォーム」がご希望】と


推測しての回答です。
データを直接編集させたくない、といった理由で、非連結フォームを
ご希望の場合は、他の回答者の方の回答を参照下さい(汗)

> 別のクエリの値を表示させたいのですが可能でしょうか?

可能です。
フォームのデザインビューで手入力で設定する場合は、フォームの
何もないところをダブルクリックするなどしてフォームのプロパティ
シートを開き、『データ』タブの『レコードソース』に、テーブル名や
クエリ名を指定すれば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;


・・・以上、長文失礼致しました(汗)
    • good
    • 0

似たようなことに最近回答したことがあります。


以下のサイト。

http://oshiete1.watch.impress.co.jp/qa5857537.html

最初から作っておいて、非表示にしておき、必要に
応じて見えるようにする、という方法はありますが、
いずれにしてもコーディングの量はかなりのものに
なります。
    • good
    • 0
この回答へのお礼

サイトを確認させていただきました。
ちょっと私には荷が重そうなので、無理にすることはやめようかと思います。
回答ありがとうございました。

お礼日時:2010/05/30 13:14

フィールド3つ、3レコード


「1」 「田中」 「100」
「2」 「佐藤」 「 50」
「3」 「山田」 「220」

フィールド3つ、1レコード
「1 田中 100」「2 佐藤  50」「3 山田 220」

ということでしょうか?。
要件がちょっとわかりません。
    • good
    • 0

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