プロが教える店舗&オフィスのセキュリティ対策術

図1、データが5000件位の製品テーブルがあります。
図1項目名の番号に対する名称等は別のテーブルにあります。

図1(テーブル)
----------------------------------------------------------
 製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・
----------------------------------------------------------
 3310001 | 3230002  |  ・・・   | ・・・ | ・・・
 3310001 | 3230002  |  ・・・   | ・・・ | ・・・
 3310010 | 3230015 |  ・・・   | ・・・ | ・・・
・      ・      
   ・      ・

テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。
材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。

図2(フォーム)
---------------------------------------
|製品番号|(製品名称テーブルより製品名) |
---------------------------------------

---------------------------------------
|予算番号|(予算名称テーブルより予算名称)|
---------------------------------------

----------------------------------------
|材質番号|(材質名称テーブルより材質名称)|
----------------------------------------

なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。

ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。

Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。

A 回答 (5件)

希望されているような表示を行いたい場合、次のような条件が必要になります。



・「材質番号」の取得元テーブルに「製品番号」もしくは「予算番号」と同じルー
 ルのデータを収納しているフィールドがあり、データ型が図1テーブルの前述フ
 ィールドと一致している。
・上記を満たした上で「製品番号」もしくは「予算番号」(とそれに相応するフィ
 ールド)は、図1テーブルと「材質番号」のあるテーブル間で同じ製品に関して
 同じ番号を使用している。

この条件を満たした上で、下記の方法でクエリとフォームを作成します。

1.図1テーブルを元に、「選択クエリ」を作成する。
  (フィールドは「製品番号」および「予算番号」だけを選択)

2.作成したクエリをデザインモードで開き、メニューの「クエリー(Q)」-「テー
  ブルの表示(T)」から「材質番号」のフィールドを含むテーブルを表示させる

3.図1テーブルのフィールドリストのボックスから、「製品番号」もしくは「予
  算番号」のうちの双方にあるほうのフィールドを手順「2.」で開いたテーブ
  ルのフィールドリスト内の同名フィールド(かそれに順ずるもの)のところま
  でドラッグアンドドロップする

4.「3.」の手順で双方のフィールドリスト間に線が表れたら、クエリのフィー
  ルドリストにフィールド:材質番号、テーブル:「2.」で開いたテーブル名
  のフィールドを追加する

5.クエリを保存して閉じ、ここまでの手順で作成したクエリを元にしたフォーム
  を作成する

以上です。すこし難しいかもしれませんが、上記は「リレーションシップ」という機能を利用する方法です。条件が合うようでしたら利用してみてください。
    • good
    • 0
この回答へのお礼

Sarukanさん、お返事ありがとうございます。
手順を参照しながらやってみたいと思います。

お礼日時:2001/06/20 17:36

#2、#3で回答させていただいたSarukanです。



>クエリに材質番号フィールドを作成しようと思ったのですが、「パラメータの入
>力」と画面が開いて何かを入力するように言われるのですが、フィールドの追加
>は項目名を入力しただけではいけないのでしょうか?

その通りです。
条件にも書きましたが、リレーションシップを作成するためには双方のテーブルの関連付けるフィールドに1対1、1対多、多対多のいずれかのかたちで同じデータが保存されている事が絶対条件になります。そのため、「図1テーブルは毎日書き換わってしまう」という条件のもとでは材質テーブルのほうに製品番号フィールドを作成し、地道にその製品番号がどの材質番号の材質を使用しているか…といったレコードを製品番号分作製するというのが一番確実な方法となります。
おそらくは気の遠くなるような作業とも思われるかもしれませんが、Excelなどで製品番号一覧をつくり、そこに材質番号を付帯させた表を作成、それをAccessにインポートさせて材質テーブルを再作成すればすこしは楽になると思います。
参考までに解決方法のひとつとしてご覧いただければ幸いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
また、お返事が遅くなり申し訳ありません。
時間はかかりそうですが私にもできそうですので、がんばってやってみます。
大変勉強になります、本当にありがとうございます。

お礼日時:2001/06/20 23:59

確認したい事があります。



一つの製品(「製品番号」)に対して、日によっては違う「材質番号」が割り当てられることがあると言うことですか?

>やはり関連性がないと無理でしょうか

図2(フォーム) では、一緒のフォームに「製品番号」と「材質番号」を表示しています。
と言うことは、このフォームで表示する段階では何らかの関連性も持っていると考えられます。

多分、フォームを表示しているクエリー(今は明確になっていませんが)が日時のテーブルを現していて、その中では「製品番号」と「材質番号」の関連があるはずです。

この回答への補足

補足要求ありがとうございます。
また、遅くなりまして申し訳ありません。

>一つの製品(「製品番号」)に対して、日によっては違う「材質番号」が割り当てられることがあると言うことですか?

いいえ、そうではなく毎日数件の新しいデータが増えていくと言うことです。

>図2(フォーム) では、一緒のフォームに「製品番号」と「材質番号」を表示しています。
と言うことは、このフォームで表示する段階では何らかの関連性も持っていると考えられます。

すみません、図2は私がこうしたいと言う理想で書いたものなので、実際は材質番号はフォームに表示されておりません。

補足日時:2001/06/20 23:43
    • good
    • 0

補足です。


もし#2で書き込ませていただいた条件を満たしていない場合、図1のテーブルに材質番号フィールドそのまま作成して手入力sるのが一番早い方法となってしまいますが、もし表記されていない右のほうのフィールドに材質名等のフィールドがある場合でも#2の方法は使用可能です。
どちらにせよ、材質の一覧テーブルガある場合、図1のテーブルに材質名などのフィールドを作成しておくことをお勧めいたします。おそらくその方が何かと便利だと思いますよ。

この回答への補足

補足ありがとうございます。
図1のテーブルは毎日書き変わってしまいますので、クエリに材質番号フィールドを作成しようと思ったのですが、「パラメータの入力」と画面が開いて何かを入力するように言われるのですが、フィールドの追加は項目名を入力しただけではいけないのでしょうか?
たびたびすみませんが、よろしくお願いいたします。

補足日時:2001/06/20 17:50
    • good
    • 0

テーブル図1の中の項目と「材質番号」と関連がある項目はありますか?


どうゆう条件で「材質番号」と関連付けているのですか?
例えば「材質番号」の入っているテーブルの中には「製品番号」が入っていると言うことです。(「材質番号」のテーブルも教えて貰わないと分からない気がします)

この回答への補足

早速のお返事ありがとうございます。
説明が足りなくてすみません。
図1と材質テーブル(材質番号)とはまったく関連づいておりません。

材質テーブルの中身ですが

|材質番号|材質名称|材質カナ|製造場所|・・・
8000001|  金  |キン  | 埼玉 |・・・
8000002| 鉄   |テツ  | 千葉 |・・・
・    ・    ・    ・
   ・    ・    ・    ・

といったデータが入っております。
やはり関連性がないと無理でしょうか、たとえば関連する項目を作ってしまうというようなことも出来るのでしょうか?
おかしな質問をしてましたらすみません、よろしくお願いいたします。

補足日時:2001/06/20 17:23
    • good
    • 0

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

関連するカテゴリからQ&Aを探す