![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
アクセスでクエリだけをつかって(VBAをつかわず)簡易システムを作りたいのですが、下記のことについて教えてください。理解した上で”確信”を持ちたいのです。下図のわかりにくい質問図で申し訳ありません。
*************************************************
(クエリデザインビュー)
『備考入力クエリ』
《テーブル名:備考》.............《テーブル名:名簿》
....... ID ...... ←----..........ID
備考1 氏名
備考2 住所
*************************************************
フィールド: ID 氏名 住所 備考1 備考2
テー ブル:名簿 名簿 名簿 備考 備考
*************************************************
とクエリを作成したときに、クエリ上で、「備考1」「備考2」に入力すると、結果的にテーブルの「備考」のIDにはクエリの連結したもの(テーブル:名簿のID)が自動入力される。このような理解にたった前提で簡易システムを構築しても間違いないでしょうか?私が試した限りではそうなるのですが、何故できたのか偶然の発見で、確信がないのです。それでこの考え方の正誤について教えてください。ここでつまづくとすべてが狂ってしまいそうで・・・。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
いまいちふたつのテーブルを作る理由がわからないのですが、とりあえず連結はされています。
ただちゃんとリレーショナルシップを設定したほうが良いと思います。この場合このクリエでは連結されていますが、他の画面では連結されません。(つまりこのクリエを元に作るのであれば連結は適応されるが、またテーブルから作ったクエリには連結が反映されず、もう一度同じ連結をしなくてはならない)
備考テーブルのIDについては同じIDが何度も出るようになっているのでしょうか?
それなら1対多のリレーショナルシップを設定しないといけませんし、名簿テーブルと一対一ならなぜテーブルで一緒にしてないのかがよくわかりません。(わけないといけない理由があるんですか?)
基本的には最終的にどうしたいかで連結やテーブルの項目を作っていかなくてはいけないので、最終的にどのようにしたいのかさしさわりないあたりで聞きたいのですが。。。
この回答への補足
ご回答ありがとうございます。以下補足事項についてなお、ご指導いただけますなら幸いです。よろしくお願いいたします。
(1) テーブルを2つ作る理由:名簿は、エクセルファイルからのインポートです。担当Aさんが作成したものを時々アクセステーブルでも更新する考え方です。
(2)備考IDは、一回限りの前提です。こちらは担当Bさんが入力します。
その上で、Bさんが、クエリで必要フィールドを加工して検索、備考の入力もれチェック(抽出)等クエリで行うつもりです。
※リレーショナルシップをやはり組んだほうがよいでしょうか?
No.6
- 回答日時:
#1です。
>その上で、Bさんが、クエリで必要フィールドを加工して検索、備考の入力もれチェック(抽出)等クエリで行うつもりです。
結局Bさんがクエリを使って抽出したいのでアクセスにしたいということでしょうか。
名簿をインポートするということでしたが、名簿がエクセルデータのうちにエクセルデータとして名簿に備考を追加することは出来ないのですか?
それとも備考入力をフォームにして入力しやすくしたいのでしょうか?
名簿データの横に題名だけつけた備考欄をつくりデータ自体は空欄にしておきましょう。(実際備考欄作らなくてもインポートできるかも)
それでインポートし、そのテーブルを元にフォームを作っておいて入力してはいかがでしょうか?
追加のものがあればエクセルデータの名簿をコピーしていらないデータを削除するなり、エクセルのほうを加工したほうがいいと思います。
あとやはりテーブルはふたついらないですね。他のテーブルがあって連結が必要ならリレーションシップはしたほうが良いと思われます。
出張にひきつづいての年末年始のネット環境に無い状況でしたので、お礼が遅くなりました。ありがとうございます。
実は、ここでは、シンプルにして「備考」という形でご質問したのですが、実際には担当Bさんが入力する項目(フィールド)がたくさんあり、エクセルの元データの名簿担当者にさわられたくない項目なのです。(エクセルの元データには入れておきたくない項目)そこでテーブルをわけようとしていたのです。
再考してみます。私も今混乱気味^^;
No.5
- 回答日時:
#3です。
> (1)「←」は結合の方法です。クエリ上の結合だけで、
> リレーショナルは組んでいません。(リレーショナル
> はやはり、したほうがよかったのでしょうか?)
リレーショナルは、できれば組んだほうがよいでしょう。
検索速度等が違うそうですが・・・六千件あたりでは実質変わった気がしません。
> (2)初心者でよくわからない・・・
と、言うのは解決済みってことで?
出張にひきつづいての年末年始のネット環境に無い状況でしたので、お礼が遅くなりました。ありがとうございます。
再考してみます。
(2)については、私としては解決していると思っているのですが、不安でもあります。が、ひとまずこのまま進めてみようかと考えています。いろいろありがとうございました。
No.3
- 回答日時:
よ~く読み込めませんが・・・「←」って結合の方法?
名簿と備考を「1対多」で結合しているのでしょうか?
当結合で「VBA」なしだとすると、名簿が新規テーブルで、備考のテーブルのみ入力した時、連結すべきIDが生成できずに、浮いたデータになりそうです。
その辺は何か工夫するのでしょうか?
(備考があるフォームはレコード追加不可にしておくとか・・・?)
他のところは、取得すべき名簿テーブルのIDが値を保持していれば、備考側のIDは引用する値があるので大丈夫だと思いますが・・・。
この回答への補足
お世話になります。アドバイスありがとうございます。わかりにくくて申し訳ありません^^;
(1)「←」は結合の方法です。クエリ上の結合だけで、リレーショナルは組んでいません。(リレーショナルはやはり、したほうがよかったのでしょうか?)
(2)初心者でよくわからないのですが、以前「教えてgoo」いただいたフォームの工夫で備考入力は浮いたデータが出ないようにできそうです。
No.2
- 回答日時:
「この考え方の正誤」の’この’が、テーブル構造全体を指すのであれば誤りです。
リレーショナルデータベースの設計の根幹に関わるので敢えて指摘しておきます。文面のみで判断すると、表の分割は不要だからです。この回答への補足
アドバイスありがとうございます。
#1さんのアドバイスでも表の分割は不要とありましたので、今、考えなおしています。
前提として、名簿はエクセルから毎月インポートで更新。備考入力は別担当者が入力というものです。
そこで、アクセスのテーブルにエクセルの名簿に無い「備考」フィールドを持ったままその他のエクセルの名簿フィールドを更新することができるのでしょうか?補足内容の表現力が稚拙で申し訳ありません。私の迷い(混乱?)に近い質問事項をご理解いただけますならば続けてご指導お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
アクセスにエクセルのデータを...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Access 複数フィールドの一致
-
アクセスのフォームを開くとき...
-
Access 2010 土日祝日を除いて...
-
accessで、「集計のオプション...
-
Access2010 携帯番号にハイホン...
-
Accessフォームでデータ入力で...
-
アクセスのクエリの”ここ”を理...
-
Accessの入力フォームから、テ...
-
ACCESS Yes/No型の集計
-
テーブルとテーブルを結合したい
-
accessのテーブルについて教え...
-
Accessで検索を高速化
-
アクセスのオートナンバーの再...
-
ACCESS クエリで重複データを最...
-
ACCESSのフォームからデータの...
-
「メソッドまたはデータメンバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
Accessの入力フォームから、テ...
-
アクセスにエクセルのデータを...
-
accessで、「集計のオプション...
-
Access2010 携帯番号にハイホン...
-
Access 複数フィールドの一致
-
Accessで検索を高速化
-
Accessフォームでデータ入力で...
-
MS-Accessのレコード内のフィー...
-
Accessのクエリによる集計が出...
-
アクセスのフォームを開くとき...
-
アクセスの重複クエリ
-
Access クエリの更新結果をテ...
-
Accessクエリのデータ表示件数...
-
accessで重複を排除してデータ...
-
オートナンバー型を1から始める...
-
アクセス初心者です AとB 2つの...
-
Access 2010 土日祝日を除いて...
おすすめ情報