図1、データが5000件位の製品テーブルがあります。
図1項目名の番号に対する名称等は別のテーブルにあります。
図1(テーブル)
----------------------------------------------------------
製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・
----------------------------------------------------------
3310001 | 3230002 | ・・・ | ・・・ | ・・・
3310001 | 3230002 | ・・・ | ・・・ | ・・・
3310010 | 3230015 | ・・・ | ・・・ | ・・・
・ ・
・ ・
テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。
材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。
図2(フォーム)
---------------------------------------
|製品番号|(製品名称テーブルより製品名) |
---------------------------------------
---------------------------------------
|予算番号|(予算名称テーブルより予算名称)|
---------------------------------------
----------------------------------------
|材質番号|(材質名称テーブルより材質名称)|
----------------------------------------
なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。
ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。
Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
希望されているような表示を行いたい場合、次のような条件が必要になります。
・「材質番号」の取得元テーブルに「製品番号」もしくは「予算番号」と同じルー
ルのデータを収納しているフィールドがあり、データ型が図1テーブルの前述フ
ィールドと一致している。
・上記を満たした上で「製品番号」もしくは「予算番号」(とそれに相応するフィ
ールド)は、図1テーブルと「材質番号」のあるテーブル間で同じ製品に関して
同じ番号を使用している。
この条件を満たした上で、下記の方法でクエリとフォームを作成します。
1.図1テーブルを元に、「選択クエリ」を作成する。
(フィールドは「製品番号」および「予算番号」だけを選択)
2.作成したクエリをデザインモードで開き、メニューの「クエリー(Q)」-「テー
ブルの表示(T)」から「材質番号」のフィールドを含むテーブルを表示させる
3.図1テーブルのフィールドリストのボックスから、「製品番号」もしくは「予
算番号」のうちの双方にあるほうのフィールドを手順「2.」で開いたテーブ
ルのフィールドリスト内の同名フィールド(かそれに順ずるもの)のところま
でドラッグアンドドロップする
4.「3.」の手順で双方のフィールドリスト間に線が表れたら、クエリのフィー
ルドリストにフィールド:材質番号、テーブル:「2.」で開いたテーブル名
のフィールドを追加する
5.クエリを保存して閉じ、ここまでの手順で作成したクエリを元にしたフォーム
を作成する
以上です。すこし難しいかもしれませんが、上記は「リレーションシップ」という機能を利用する方法です。条件が合うようでしたら利用してみてください。
No.5
- 回答日時:
#2、#3で回答させていただいたSarukanです。
>クエリに材質番号フィールドを作成しようと思ったのですが、「パラメータの入
>力」と画面が開いて何かを入力するように言われるのですが、フィールドの追加
>は項目名を入力しただけではいけないのでしょうか?
その通りです。
条件にも書きましたが、リレーションシップを作成するためには双方のテーブルの関連付けるフィールドに1対1、1対多、多対多のいずれかのかたちで同じデータが保存されている事が絶対条件になります。そのため、「図1テーブルは毎日書き換わってしまう」という条件のもとでは材質テーブルのほうに製品番号フィールドを作成し、地道にその製品番号がどの材質番号の材質を使用しているか…といったレコードを製品番号分作製するというのが一番確実な方法となります。
おそらくは気の遠くなるような作業とも思われるかもしれませんが、Excelなどで製品番号一覧をつくり、そこに材質番号を付帯させた表を作成、それをAccessにインポートさせて材質テーブルを再作成すればすこしは楽になると思います。
参考までに解決方法のひとつとしてご覧いただければ幸いです。
ご回答ありがとうございます。
また、お返事が遅くなり申し訳ありません。
時間はかかりそうですが私にもできそうですので、がんばってやってみます。
大変勉強になります、本当にありがとうございます。
No.4
- 回答日時:
確認したい事があります。
一つの製品(「製品番号」)に対して、日によっては違う「材質番号」が割り当てられることがあると言うことですか?
>やはり関連性がないと無理でしょうか
図2(フォーム) では、一緒のフォームに「製品番号」と「材質番号」を表示しています。
と言うことは、このフォームで表示する段階では何らかの関連性も持っていると考えられます。
多分、フォームを表示しているクエリー(今は明確になっていませんが)が日時のテーブルを現していて、その中では「製品番号」と「材質番号」の関連があるはずです。
この回答への補足
補足要求ありがとうございます。
また、遅くなりまして申し訳ありません。
>一つの製品(「製品番号」)に対して、日によっては違う「材質番号」が割り当てられることがあると言うことですか?
いいえ、そうではなく毎日数件の新しいデータが増えていくと言うことです。
>図2(フォーム) では、一緒のフォームに「製品番号」と「材質番号」を表示しています。
と言うことは、このフォームで表示する段階では何らかの関連性も持っていると考えられます。
すみません、図2は私がこうしたいと言う理想で書いたものなので、実際は材質番号はフォームに表示されておりません。
No.3
- 回答日時:
補足です。
もし#2で書き込ませていただいた条件を満たしていない場合、図1のテーブルに材質番号フィールドそのまま作成して手入力sるのが一番早い方法となってしまいますが、もし表記されていない右のほうのフィールドに材質名等のフィールドがある場合でも#2の方法は使用可能です。
どちらにせよ、材質の一覧テーブルガある場合、図1のテーブルに材質名などのフィールドを作成しておくことをお勧めいたします。おそらくその方が何かと便利だと思いますよ。
この回答への補足
補足ありがとうございます。
図1のテーブルは毎日書き変わってしまいますので、クエリに材質番号フィールドを作成しようと思ったのですが、「パラメータの入力」と画面が開いて何かを入力するように言われるのですが、フィールドの追加は項目名を入力しただけではいけないのでしょうか?
たびたびすみませんが、よろしくお願いいたします。
No.1
- 回答日時:
テーブル図1の中の項目と「材質番号」と関連がある項目はありますか?
どうゆう条件で「材質番号」と関連付けているのですか?
例えば「材質番号」の入っているテーブルの中には「製品番号」が入っていると言うことです。(「材質番号」のテーブルも教えて貰わないと分からない気がします)
この回答への補足
早速のお返事ありがとうございます。
説明が足りなくてすみません。
図1と材質テーブル(材質番号)とはまったく関連づいておりません。
材質テーブルの中身ですが
|材質番号|材質名称|材質カナ|製造場所|・・・
8000001| 金 |キン | 埼玉 |・・・
8000002| 鉄 |テツ | 千葉 |・・・
・ ・ ・ ・
・ ・ ・ ・
といったデータが入っております。
やはり関連性がないと無理でしょうか、たとえば関連する項目を作ってしまうというようなことも出来るのでしょうか?
おかしな質問をしてましたらすみません、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- その他(Microsoft Office) 同じ番号に並び替え 1 2022/10/21 22:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- DIY・エクステリア SANEI トイレ部品 ロータンク密結パッキン がの我がトイレとの互換性を教えてください。 3 2023/07/16 06:22
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IT用語について質問です。 以前...
-
ACCESSでテーブルのフィールド...
-
Accessでテーブルの値をテキス...
-
【Access】フォームで自動計算...
-
accessのレポートで元になるテ...
-
ExcelからAccessにデータを取り...
-
Access2003 空レコード挿入
-
ACCESSで和暦を西暦に・・・
-
アクセスのテーブルデータをCSV...
-
Accessでフィールドを追加したい
-
ACCESS VBAにてCSV...
-
オプショングループから文字を入力
-
アクセス エラーを数値「0」に...
-
ACCESSの既存テーブルに、EXCEL...
-
Accessで、フィールドにルック...
-
ACCESS検索★ある文字を複数のフ...
-
ACCESS.ルックアップの値以外...
-
Sqlserver2005でテーブルを作成...
-
accessで順位の合計の順位の求め方
-
view作成時にデータ型を変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSで400以上のフィールドが...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
accessのレポートで元になるテ...
-
アクセス エラーを数値「0」に...
-
ExcelのデータをコピーでACCESS...
-
Accessで、固定アルファベット+...
-
Access 昇順・降順で並び替え...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
SQLServer2005のSQL文での別名...
-
ACCESSで和暦を西暦に・・・
-
ACCESS2000「定義されているフ...
-
主キーはオートナンバー型のID...
-
ACCESSでオートナンバーを任意...
-
ACCESSでテーブルのフィールド...
-
アクセス A列コピー B列貼り...
-
IT用語について質問です。 以前...
おすすめ情報