Accessにて、
テーブルA(個人情報)
●個人コード
●名前
●住所
・
・
テーブルB(個人ごとの数量管理)
●個人コード
●数量
上記のようなテーブルがあるとします。
これは、1:1のリレーションシップにしたいのですが、
クエリAを作成して
●個人コード(テーブルB)
●名前(テーブルA)
●数量(テーブルB)
個人コードを入力すると、名前を参照するというふうに
したいのですが、1:1のリレーションシップだと個人コードの入力時に
参照はできないのでしょうか?
一旦閉じて、開くと参照していますが・・・。
良いご意見がありましたら、よろしくお願いします。
No.5
- 回答日時:
個人コードを入力するフォームがあると思うのですが、そのフォームのテキストボックスなどの値をクエリーの抽出条件にすればいいとおもいます。
1.デザインモードで個人コードの抽出条件のところで右クリックして
「ビルド」を選びます。
2.フォームのテキストボックスの値を選択します。
3.保存ボタンを押して閉じてください。
再びクエリを開いたら「[Forms]![フォーム1]![テキスト0]」などが追加されていると思います。
これは、フォーム1にあるテキスト0の値を抽出条件にするということです。
忘れずにテキスト0の書式でデータの型をテーブルの型とあわせておいてくださいね。
No.4
- 回答日時:
#2です。
つまりはEXCELで作成したデータをインポートしてテーブルAに反映したいという事でしょうか?
それであればテーブルAにやはり数量フィールドを追加してEXCELのデータをインポート後に
更新クエリーで一気に更新してしまえば入力の手間がなくなるのではないですか?
根本的な考え方がずれていたらすみません。
この回答への補足
何度もありがとうございます。
テーブルAに追加することも考えたのですが、
テーブルA
●個人コード
●氏名
・
・
のように複数のフィールドがあります。
Excelでは、
●個人コード
●数量
の2つのフィールドのみです。
テーブルAには、約7000件。
Excelのデータは、テーブルAの件数すべての数量があるというわけではなく、
1000件弱程度です。
そのため、Excelのデータを別のテーブルにインポートし、
1:1のリレーションにしようと思いました。
更新クエリではできないかと思ったのですが、いかがでしょうか?
No.3
- 回答日時:
テーブルAとテーブルBの個人コードが一意で等価ということですね。
テーブルA(個人情報)
●個人コード [00001]
●名前 [yastak]
●住所 [Japan]
・
・
テーブルB(個人ごとの数量管理)
●個人コード [00001]
●数量 [100]
select B!個人コード,A!名前,B!数量
from テーブルA as A inner join テーブルB as B
on A!個人コード!=B!個人コード where B!個人コード="00001";
・selectの後のB!個人コード,A!名前,B!数量は
抽出フィールド名です
・inner joinの後は等価結合するテーブル名、ONの後は
結合するフィールドを書いています
・where の後は抽出条件を書いています。入力した値を抽出条件にすれば任意のデータを取り出すことが出来ます。
データがある場合は、
where句に"00001"を設定すれば
00001,yastak,100の答えが帰ってきますよ。
この回答への補足
何度もありがとうございます。
テーブルAは、数千件のデータがあり、テーブルBは、千件程度のデータがあります。
クエリにて、個人データの入力をするのも、1件ではないので、
固定の個人コードを設定することはできません。
入力した個人コードに対して、その都度テーブルAより
名前を表示させるようにしたいのですが。
No.2
- 回答日時:
まず、一対一なら何故テーブルAのフィールドに取り込まないのか?の疑問はあるものの・・・。
テーブルBの個人コードにコードを入力した時に、該当するコードがテーブルAにある場合
テーブルAに登録されている名前を参照したいという事でよろしいですよね?
入力後すぐに参照値を反映したいというのであれば、再クエリーが必要です。
手動で行う場合は、シフト+F9です。
クエリーから直接入力をするのであれば、手動のこの方法で再クエリーを実行するしかありません。
しかし、このクエリーをレコードソースとしたフォームから入力するのであれば、
個人コードの更新後処理でDoCmd.Requeryを実行すれば個人コードから移動する瞬間に
自動的に再クエリーされて名前を表示する事が出来ます。
でも、一般的にこういった一対一は使わないですよ?
ありがとうございました。
フォームにて使いたいと思います。
通常は、このようなテーブルAの中にすべて入れるべきなのでしょうが、
あるシステムで、テーブルA(個人のデータが入っているマスタ)があり
この、個人コードを利用して、Excelにて個人ごとのデータを入力したリストがあります。
テーブルAに、フィールドを追加し、手入力するには件数が多いので
この様にしてしまいましたが、
テーブルの作り方で、他に良い方法がありましたら、お願いいたします。
No.1
- 回答日時:
クエリーの作り方で抽出がおかしくなっていませんか?
SQLのモードに変更して(画面の一番左上です)
select B!個人コード,A!名前,B!数量
from テーブルA as A inner join テーブルB as B
on A!個人コード!=B!個人コード where B!個人コード="XXXXXXXXX";
テーブルBの個人コードをWhere句に入力するように組んでやれば動くと思うのですが?(動かなかったらヘルプでデバッグしてね^^;)
それから個人コードと名前が1:1になるようにしたいなら、データの重複には十分注意してください。プライマリーキー設定をして一意にしておかなければ一つの個人コードで複数の名前がヒットしたりしますよ。
(Nullももちろんだめです。)
この回答への補足
早速、ありがとうございます。
個人コードと名前が1:1という部分がよく分からないのですが・・・。
テーブルAとテーブルBの個人コードが1:1になるようにしていて、
クエリを作成したときに、個人コードを入力(テーブルB)すると、
テーブルAより名前を参照させるようにしたいのですが、
質問の仕方が悪かったでしょうか・・・。
Where句で書いていただいている"xxxxxx"の部分もなにを書いたらいいのかよくわからないので
補足をよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
ACCESS 一つのフィールドに複...
-
select文の書き方
-
重複するキーから一番古い年月...
-
連番のMin, Maxを取得したい
-
主キーの変更
-
行方向のデータを横に並べる
-
Accessリレーションシップ
-
ACCESS インポート時の重複チ...
-
Accessでフィールドを比較した...
-
filemakerでのポータルの設定の...
-
続.ORACLEのSELECTのソートに...
-
VIEWでテーブルの集計結果...
-
片方だけ抽出する方法(SQL)
-
PLSQLの識別子エラー
-
ACCESS2007 フォーム 「バリア...
-
Accessにインポートしたら並び...
-
数百万件レコードのdelete
-
Accessでの排他制御
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
PLSQLの識別子エラー
-
VIEWでテーブルの集計結果...
-
Accessでフィールドを比較した...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
ACCESSのコンパイルエラーについて
-
片方だけ抽出する方法(SQL)
-
【Access】順位を付けたい
-
[Oracle] UPDATE分の副問い合わ...
-
テーブル値関数経由でのデータ更新
-
ACCESS インポート時の重複チ...
-
ACCESS2000でDCount関数の使い方
-
Access2002の集計レポート?
-
商品コード番号を入力すると商...
-
Inner join と Left joinの明...
おすすめ情報