■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5246-1テーブルの追加1999-09-16(木) 10:46
     #5250-1RE#5246:テーブルの追加MuMu1999-09-16(木) 11:44
     #5253-1RE#5246:テーブルの追加むさくん1999-09-16(木) 12:01
     #5264-1RE#5250:テーブルの追加1999-09-16(木) 13:49
     #5267-1RE#5253:テーブルの追加1999-09-16(木) 14:29
     #5269-1RE#5267:テーブルの追加むさくん1999-09-16(木) 15:16
     #5271-1RE#5264:テーブルの追加MuMu1999-09-16(木) 15:37
     #5322-0RE#5269:テーブルの追加1999-09-17(金) 10:23
     #5327-0RE#5271:テーブルの追加1999-09-17(金) 10:51
     #5404-0RE#5322:テーブルの追加むさくん1999-09-17(金) 23:45
#5246-1
テーブルの追加
Access97でレポートの作成をやっています。最初5つのレポートを1つのクエリーに
まとめて(って言うのかな)レポートをウィザードを使って作成しました。
大体形ができたところで上司に見てもらったらテーブルを2つにまとめてクエリーは
使わないように変更して。といわれました。最初に作ったときに見ていた
本にはそういったコトは書いてなかったのでヘルプを見たのですが、
「テーブル」、「レポート」で調べたけれどクエリーを使う方法しか見つけられませんでした。
次にメニューバーとツールバーの項目を1つずつ見ていってレポートのプロパティーで
コントロールソースを指定できたのですがこれは1つのテーブルしか指定できず
2つ目のテーブルのフィールド名が(プレビューを表示させようとしたときに)
「パラメータの入力」といったメッセージボックスで出てきてしまいます。

あまりにもできないので(といっても3日間しか悩んでないや…(^^;)
ホントにできるのか?とSEの友人に聞いたら「めちゃくちゃ簡単だよ。」と
あっさり言っただけで教えてはくれませんでした(;;)簡単なら…と
また調べてみましたが何をキーワードに調べていけばいいのかも思いつかなくなってしまい
行き詰まり状態です。ヒントだけでもいいので教えていただけませんか?
#5250-1
RE#5246:テーブルの追加
> Access97でレポートの作成をやっています。最初5つのレポートを1つのクエリーに
  ん?レポートを一つのクエリーですか?
  クエリーかテーブルの間違いですよね?(^^;) (当方Access95しかないもので・・・)

> 大体形ができたところで上司に見てもらったらテーブルを2つにまとめてクエリーは

  テーブルを2つにまとめるというのは、
  1.現在あるテーブルのうち、2つのテーブルを使うだけで作成可能。
  2.現在あるテーブル以外に、このレポートのためにテーブルを2つ新規に作成する。
  3.上記以外。
  のどのパターンでしょうか?

> 使わないように変更して。といわれました。最初に作ったときに見ていた

  「クエリーを使用しないで」というのは、なぜでしょうか?
  クエリーの元になるテーブル OR クエリーが多くてややこしいとか?
  私の場合、Accessで帳票を作成するのであれば、クエリー = レポートという形に
  なるように作成します。

  クエリーを使わないでということであれば、クエリーの代わりにワークテーブルを
  作成するという手段もあります。
  レポートを作成する前に必ず、このテーブルを作成して、このテーブルからレポート
  を作成する。(ですから、必ずワークテーブルを削除して再作成となります。)

> 「テーブル」、「レポート」で調べたけれどクエリーを使う方法しか見つけられませんでした。
  Accessは、そういう使い方をするようにということだと思っています。

> 次にメニューバーとツールバーの項目を1つずつ見ていってレポートのプロパティーで
> コントロールソースを指定できたのですがこれは1つのテーブルしか指定できず
> 2つ目のテーブルのフィールド名が(プレビューを表示させようとしたときに)
> 「パラメータの入力」といったメッセージボックスで出てきてしまいます。

  2つめのテーブルのフィールドを認識できていないからですね。
  モジュールにコーディングしなければなりません。
  1つ目のテーブル(主テーブル)から2つ目のテーブルのレコードを呼ばないとだめ
  です。(クエリーでしているようなことをコーディングするわけです。)

> 行き詰まり状態です。ヒントだけでもいいので教えていただけませんか?

  ほとんど役にたたない書き込みかもしれませんが、これでお許しを。m(_ _)m
#5253-1
RE#5246:テーブルの追加
どういう状態でなにをやってるのかがよくわからないのですが…
VBAとか関係なくて「複数テーブルの項目を表示するレポートをつくりたい」ですか?

まずレポートのプロパティで「レコードソース」を探してください。その欄にはSQL文を
記入してデータを抽出することができます。(ヘルプ「レコードソースプロパティ」参照)

ウィザードを使って作るのであれば「元になるテーブル/クエリー」を指定しなければ
後で聞かれて複数選択できるようになるのでそれでも一応できるはずです
#5264-1
RE#5250:テーブルの追加
> > Access97でレポートの作成をやっています。最初5つのレポートを1つのクエリーに
>   ん?レポートを一つのクエリーですか?
>   クエリーかテーブルの間違いですよね?(^^;) (当方Access95しかないもので・・・)
「5つのテテーブル」の間違いでした。m(__)m

>   テーブルを2つにまとめるというのは、
>   1.現在あるテーブルのうち、2つのテーブルを使うだけで作成可能。
>   2.現在あるテーブル以外に、このレポートのためにテーブルを2つ新規に作成する。
>   3.上記以外。
>   のどのパターンでしょうか?
5つあるテーブルのうち1つはそのままに残りの4つを1つのテーブルにしてしまう,
ということでした。

>   「クエリーを使用しないで」というのは、なぜでしょうか?
>   クエリーの元になるテーブル OR クエリーが多くてややこしいとか?
単純なものなのでクエリーを使わずにテーブルから直接データをもってきたい,
といわれました。私も初めてなのでなんのメリットがあるのかわかりませんが
とりあえず言われたようにやろうとしてるだけなもので…

>   クエリーを使わないでということであれば、クエリーの代わりにワークテーブルを
>   作成するという手段もあります。
>   レポートを作成する前に必ず、このテーブルを作成して、このテーブルからレポート
>   を作成する。(ですから、必ずワークテーブルを削除して再作成となります。)
ごめんなさい。よくわからないのですが,ワークテーブルというのは普通の
テーブルを便宜的に「ワークテーブル」という位置付けをしたものでしょうか?
また「ワークテーブルを削除して再作成」ということはレポートを実行するたびに
新しいワークテーブルが自動的に作成されて終了すると削除される,ということですか?

>   モジュールにコーディングしなければなりません。
>   1つ目のテーブル(主テーブル)から2つ目のテーブルのレコードを呼ばないとだめ
>   です。(クエリーでしているようなことをコーディングするわけです。)
やっぱりテーブルとレポートだけじゃできないんでしょうか?とにかくシンプルに
作ってほしいみたいなんですけど…<上司

わからない、わからないばっかりでごめんなさい。自分でもできる限り
調べますので根気よくレスいただければ,と思います…
#5267-1
RE#5253:テーブルの追加
> どういう状態でなにをやってるのかがよくわからないのですが…
> VBAとか関係なくて「複数テーブルの項目を表示するレポートをつくりたい」ですか?
多分そうだと思います。VBAでもないのでこっちで質問して,と
「はじめたばかり〜」の方で言われたので関係ないのではないかと…
VBAも言語らしい。というレベルの理解度なもので…
> 
> まずレポートのプロパティで「レコードソース」を探してください。その欄にはSQL文を
> 記入してデータを抽出することができます。(ヘルプ「レコードソースプロパティ」参照)
最初のカキコで私が間違えて「コントロールソース」と書いたやつですね。
複数のテーブルを指定するにはテーブル名の間に何を入れればいいんでしょう?
いろんな記号を試してみたのですが認識されませんでした…
> 
> ウィザードを使って作るのであれば「元になるテーブル/クエリー」を指定しなければ
> 後で聞かれて複数選択できるようになるのでそれでも一応できるはずです
ウィザードを使って作ってしまったのでこれから修正する方法を教えて
いただきたいと思ってカキコしました。わからないことを的確に説明するのって
難しいですねぇ…
#5269-1
RE#5267:テーブルの追加
> 多分そうだと思います。VBAでもないのでこっちで質問して,と

一番上の一般掲示板っぽい気もするんですが…

> 複数のテーブルを指定するにはテーブル名の間に何を入れればいいんでしょう?
> いろんな記号を試してみたのですが認識されませんでした…

多分「TABLE1,TABLE2」と書きたいんだろうと思うのですが、それは無理です。
SQLという言語を使用して記述してください

#どうやら会社でやっているっぽいですが、他の人に聞けないのでしょうか?
#「SQLでこの部分とこの部分を抽出したい」と的を絞って聞けば教えてくれる
#気もするのですが…

> > ウィザードを使って作るのであれば「元になるテーブル/クエリー」を指定しなければ
> > 後で聞かれて複数選択できるようになるのでそれでも一応できるはずです
> ウィザードを使って作ってしまったのでこれから修正する方法を教えて
> いただきたいと思ってカキコしました。わからないことを的確に説明するのって
> 難しいですねぇ…

SQLがわからないというならば最初からウィザードで作り直した方が早いと思いますよ。

もしくは新規に複数選択したレポートを作成して、レコードソースプロパティの
値だけを古いレポートのそれにコピーすると大丈夫かもしれません。
#5271-1
RE#5264:テーブルの追加
> 5つあるテーブルのうち1つはそのままに残りの4つを1つのテーブルにしてしまう,
> ということでした。

  残りの4つのテーブルを1つにというのは、4つの各テーブルから必要な項目を
  取り出して、別のテーブルを作るということですか?
  クエリーであれば、元のテーブルにデータの追加・更新が発生してもクエリーに
  対しては追加・更新の必要はありませんが、別テーブルを作成するとなると
  元の4つのテーブルにデータの追加・更新が発生すると、別テーブルにも同様に
  追加・更新しなければならないと思いますが?
  今回の質問とは直接関係ないかとは思いますが、この点については如何でしょうか?
  
> 単純なものなのでクエリーを使わずにテーブルから直接データをもってきたい,

  クエリーが単純であれば、クエリーでもいいと思いますけどねぇ。
  前は、テーブルが5つもあったからややこしく感じたのでしょうけど、
  2つになったら、それほどクエリーもややこしくないのではないでしょうか?

> ごめんなさい。よくわからないのですが,ワークテーブルというのは普通の
> テーブルを便宜的に「ワークテーブル」という位置付けをしたものでしょうか?

  そうです。

> また「ワークテーブルを削除して再作成」ということはレポートを実行するたびに
> 新しいワークテーブルが自動的に作成されて終了すると削除される,ということですか?

  そのレポートに必要なデータだけを持つテーブルなので、毎回作り直しとなります。
  自動的に作成されるのではなく、あくまで#削除してやり#、#作成してやる#のです。
  でも、これって基本的にクエリーと同じ考え方なので上司の指示には反しますね。
  まあ、こういうやり方もあるということで記憶にとどめておいてください。
  
> やっぱりテーブルとレポートだけじゃできないんでしょうか?とにかくシンプルに
> 作ってほしいみたいなんですけど…<上司
  
  シンプルに作ろうと思えば、モジュールにゴリゴリ書いたりするよりは、クエリーや
  マクロで作るのが一番わかりやすいと思います。あと、プロパティの設定と。。。

  レコードソースにSQLを書くことについて複数のテーブルを指定するのが云々と、
  #5267にありましたが、SQLが判らない場合はクエリーを作ってみて、そのクエリーを
  SQLビューで見ればSQLが判ります。
  でも、これってクエリーでやるのと変わらないと思います。。かえってクエリーの方が
  レポートを出さずに結果を見ることができるから、わかりやすいと思うんですけど。
  
> 
> わからない、わからないばっかりでごめんなさい。自分でもできる限り
> 調べますので根気よくレスいただければ,と思います…

  私の方こそ、たいして力にもなれずにかき回しているだけのような気が・・・。
  でも、晶さんの質問は努力の跡が伺えるので、なんとか力になりたいって感じがする
  のは私だけでしょうか?
#5322-0
RE#5269:テーブルの追加
> 一番上の一般掲示板っぽい気もするんですが…
今過去ログDLしたものを確認したら確かに「一般」でした。(^^;
今レポートを見つめてみたら確かに全くVBとは関係ないみたいですね(^^;

> #どうやら会社でやっているっぽいですが、他の人に聞けないのでしょうか?
来年4月に入社予定(現在内定者)で、プログラム等を勉強するために
アルバイトとして来ているのでなるべく自分でやってみて,といわれたもので…

> SQLがわからないというならば最初からウィザードで作り直した方が早いと思いますよ。
最初に作ったときもそうだったんですが,今も「基になるテーブル/クエリーの選択」
を最初に指定せずに作り直してみたんですけど後で聞かれなかったんです。
はじめ作ったときも本には聞かれる,と書いてあったのにへんだな,とは思ったんですけど…

> もしくは新規に複数選択したレポートを作成して、レコードソースプロパティの
> 値だけを古いレポートのそれにコピーすると大丈夫かもしれません。
マクロみたいな使い方ですね。早速試してみたところ何箇所かで躓いたものの
何とかプレビューで表示させることはできました。でも今度はエラーはしないものの
1つ目のテーブルのデータが表示されません。リレーションシップを設定したときに
RIGHT JOINにしたつもりですがレコードソースを見てみたら"RIGHT OUTER JOIN"と
書いてありました。ヘルプで見ても見当たらないのですがこれはどう言う意味でしょう?
そしてやはりこれが問題なのでしょうか?

☆ちなみにRIGHT JOINにした理由。
使用する(はじめ5つ、現在は2つの)テーブルのうち1つはデータが1行だけなのに
対し残りは複数行にわたります。最初ウィザードでクエリーを作ったら自動的に
INNER JOINになり2行目以降のデータが表示されませんでした。それをRIGHT JOIN
に修正したらちゃんと表示されたので今回もそのようにしてみたのです。
#5327-0
RE#5271:テーブルの追加
>   残りの4つのテーブルを1つにというのは、4つの各テーブルから必要な項目を
>   取り出して、別のテーブルを作るということですか?
はじめ4つものテーブルを作ったのは同じ名前のフィールドがあるために
テーブル内でエラーが発生するからでした。でも適当に名前を変えて1つの
テーブルにまとめて、といわれたので4つのテーブルの各々全てのフィールドを
1つのテーブルに放りこんだのです。まとめたこと自体はすっきりさせる、とか
その程度の意味合いしかないと思います。こんな説明でわかるでしょうか??

>   クエリーが単純であれば、クエリーでもいいと思いますけどねぇ。
>   前は、テーブルが5つもあったからややこしく感じたのでしょうけど、
>   2つになったら、それほどクエリーもややこしくないのではないでしょうか?
私もこの分野にかかわって1ヶ月とかで上の人が何をやりたいのかもよくわかって
いないまま言われたとおりにやれるよう悩んでるだけなので。。。(;;)
参考にしていた本にもクエリーを使う方がいいと書いてあったし,Accessのヘルプも
クエリーを使うことを推奨してるみたいですし私もクエリー使いたいんですけどねぇ。
(クエリー使ってた時はちゃんと動いてたし…)

>   レコードソースにSQLを書くことについて複数のテーブルを指定するのが云々と、
>   #5267にありましたが、SQLが判らない場合はクエリーを作ってみて、そのクエリーを
>   SQLビューで見ればSQLが判ります。
>   でも、これってクエリーでやるのと変わらないと思います。。かえってクエリーの方が
>   レポートを出さずに結果を見ることができるから、わかりやすいと思うんですけど。
ご親切にありがとうございます。SQLわからないので(でも覚えたいので)
SQLみるためにクエリーをまた作ってしまいました(^^; でも見比べてみると
プロパティーのレコードソースの部分に書いてあるものとほとんど変わりませんね。
むさくんさんへのレスとしても書きましたが最後のFROM句がレコードソースだと

FROM ([Header] RIGHT OUTER JOIN [Soukatsu] ON [Header].[Tantosyamei] =[Soukatsu].[Shiharai]); 

なのにクエリーだと FROM Header, Soukatsu; 

でした。2つのテーブルのリレーションシップは結合の種類を3にしてあります。
基になるテーブルクエリーの選択はしていません。この違いはなんでしょうか?

>   私の方こそ、たいして力にもなれずにかき回しているだけのような気が・・・。
>   でも、晶さんの質問は努力の跡が伺えるので、なんとか力になりたいって感じがする
>   のは私だけでしょうか?
とんでもないです。とっても丁寧にお答えいただいて感謝しています。
思いっきり初心者なのでいつも見当違いなコトばかりやってできない,できない、
と言っているのでこういうコトをやってこういう結果が出た,というのを書いたら
その指摘もいただけるかな,と思って書いています。長くなってしまうのが難点ですが…
#5404-0
RE#5322:テーブルの追加
> 最初に作ったときもそうだったんですが,今も「基になるテーブル/クエリーの選択」
> を最初に指定せずに作り直してみたんですけど後で聞かれなかったんです。
> はじめ作ったときも本には聞かれる,と書いてあったのにへんだな,とは思ったんですけど…

「含めるフィールドを指定してください」の画面の左上にテーブル名が書いてないですか?
家のAccess97でもちゃんとあるのですが…?

> 1つ目のテーブルのデータが表示されません。リレーションシップを設定したときに
> RIGHT JOINにしたつもりですがレコードソースを見てみたら"RIGHT OUTER JOIN"と
> 書いてありました。ヘルプで見ても見当たらないのですがこれはどう言う意味でしょう?

「OUTER」を省略してもちゃんと動いてるようです.
ヘルプを見ると「右外部結合」と書いてあるので「外部」なのかなとも
思うのですが…(違いそう)

とりあえずRIGHT JOINを使うとある条件のときにそのような事が起こります。
ヘルプ等の説明をよく読んでみましょう。(多分LEFT JOINにしたら2番目が
全然表示されないと思います)

データが数件しかないような使い捨てのテスト用データベースをつくって
いろいろ試してみてはどうでしょうか?
このページと関連する記事:
#1463-0Access:レポートとクエリー1999-09-10(金) 17:07
#10664-0VBではACCESS出来ることが出来るのでしょうか2000-05-17(水) 14:43
#46220-0クエリーの作成について2001-08-27(月) 16:35
#4185-0seaver1999-11-17(水) 19:58
#2121-0助けて下さい2002-05-07(火) 16:10
#16777-02つのテーブルの結合2000-12-01(金) 21:35
#1882-0アクセスでレコード単位で処理をしたいです2002-03-28(木) 14:38
#44176-0クリスタルレポートについて2001-06-19(火) 10:12
#29720-0クエリでのレコードの編集方法2000-09-11(月) 09:04
#178-1JOINしたクエリの追加ができない(MDB)2004-01-07(水) 18:53
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)