いつもお世話になっています。
Accessでクエリを作成するにあたり、リレーションシップを設定したいのですが、
一致させるフィールドが「123456/S1234とS1234」,「S001234とS1501234E」,「5678と5678」など、
完全一致するものと一部一致するものが混在しています。
一部一致のものでも、どれと一致させるかを判断することはできるのですが、
この状態では通常のリレーションシップは設定できませんか?
設定できないならば、一度加工して完全一致したテーブルを作成し、
それとリレーションシップをVBAで設定するしかないでしょうか?
No.2ベストアンサー
- 回答日時:
一致条件を判断する関数をVBAで作成すれば可能ですが、
「S001234とS1501234E」が一致するということは、1234 が一致しているということですが、前者の一部と後者の一部の一致も許可するということですよね。
だとすると、「S001234」は一つ前のデータ例「S1234」とも一致するし、「S1501234E」は同じく「123456/S1234」とも一致するということになりますね。
これでは、一致する条件が緩すぎて、複数の組み合わせが多数できてしまい使い物にならないと思いますが。
もう少し厳密な条件定義が必要ですね。
また、関数で一致条件を定義するとインデックスの機能が使えませんので、レコード件数が多いと処理が重くなります。
加工して完全一致になるフィールドを作成する方法をとることをお勧めましす。
どちらにしても現状の条件ではどうにもなりません。
回答ありがとうございます。
比較条件が緩いのは、相談するにあたりちょっとデータを単純化しているのでどうにかなりそうです。(紛らわしくてすみません)
が、VBAで関数を使うつもりが、処理がおそくなるとは知りませんでした。
やはり完全一致フィールドを比較用キーとして作成するのがよさそうですね。
No.4
- 回答日時:
補足:選択クエリはちょっと複雑になるかも・・・。
改定後の構造で選択クエリを作成してみました。その場合、普通に作成すると、参照が倍になりました。(添付図参照のこと)
こういう状況が出現することも想定して作業を進められたがいいかもです。
No.3
- 回答日時:
>一致させるフィールドに一部一致するものが混在しています。
>一度加工して完全一致したテーブルを作成し・・・
それが妥当かどうかは、全体のデータ構造だと思いますよ。
[テーブル1]
ID=1
列1=12345
・・・・・
ID=7
列1=12345
[テーブル2]
ID=1
列1=12345
列2=S1234
ID=2
列1=12345
列2=12345
[テーブル2.列1]を新たに追加。そして、[テーブル1.列1]-[テーブル2.列1]でリレーションシップを設定。実際には、[テーブル2.1列2]のみを参照する。こういう設計変更が考えられますが、それが妥当かどうか・・・。全体のデータ構造だと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
ことしの初夢、何だった?
2025年になりましたね。1年の吉凶を占う風習といわれている初夢。ことし初めて見た夢、覚えていますか?
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリのキャンセルがいつにな...
-
VIEWしか読み取れないユーザの...
-
ユニオンクエリの結果をテーブ...
-
エクセルでテーブルの最終行が...
-
SI Object Browserのテーブルス...
-
SQL Serverのテーブル追加を、A...
-
UNIONなどで複数のテーブルから...
-
重複するレコードに対しフラグ...
-
コンボボックスで入力したもの...
-
accessテーブル作成クエリを実...
-
リンクサーバー接続先の参照エ...
-
PL/SQLでFROM句に変数を使いたい
-
位置を指定してフィールドを追...
-
Access のリレーションシップで...
-
SQLサーバーのテーブルの値...
-
AccessでOracleのテーブルをリ...
-
ADOでSeekメッソッドが使えませ...
-
テーブル作成クエリで新テーブ...
-
「マスタ」と「テーブル」の違...
-
SELECT文でのデッドロックに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クエリのキャンセルがいつにな...
-
SI Object Browserのテーブルス...
-
エクセルでテーブルの最終行が...
-
accessテーブル作成クエリを実...
-
あるテーブルのデータを追加、...
-
UNIONなどで複数のテーブルから...
-
ストアドをまたがるローカル一...
-
列サイズ変更時、DB停止は必要?
-
VIEWしか読み取れないユーザの...
-
コンボボックスで入力したもの...
-
ユニオンクエリの結果をテーブ...
-
レプリケーションしているテー...
-
SQLサーバーのテーブルの値...
-
ADOでSeekメッソッドが使えませ...
-
位置を指定してフィールドを追...
-
AccessでOracleのテーブルをリ...
-
重複するレコードに対しフラグ...
-
アクセスのテーブル作成クエリ...
-
テーブル作成クエリで新テーブ...
-
Access のリレーションシップで...
おすすめ情報