識者の力をお借りしたく質問いたします。
質問ページから不一致クエリに関する内容を参考に、ある不一致クエリを作成しています。
しかし、出来るはずの方法で結果が正しく表示されず途方にくれています。
処理の内容としては、あるクエリのフィールドを参考に不一致クエリで差分レコードを抽出したいというものです。
通常不一致クエリはテーブルの主キーを基に作成するものと私は理解しているのですが、今回の処理では基のテーブルに主キーが無く、(作成できない事情があり)クエリで無理矢理主キーもどきのものを作りました。
クエリで作成したのは、数字6桁(最大で)の後ろにチェックディジットとしてアルファベット1文字を追加した計7文字のフィールドです。
例:131401A
不一致を抽出したい基となる2つのテーブルに対しこのクエリを作成しました。
この2つのクエリから不一致クエリで差分を抽出し、基のテーブルに追加クエリで追加したいのですが、どうやっても不一致項目が表示されません。
根本的にクエリからの不一致クエリは作成できないのでしょうか?
よろしくお願いいたします。
■状況
テーブル1/テーブル2(基となるテーブル、主キー無し)
クエリ1/クエリ2(テーブル1/テーブル2のレコードにコードを追加するクエリ)
コード1/コード2(クエリ1/クエリ2で作成したコード)例:131401A
不一致クエリ
テーブル2 → テーブル1 (リレーションシップ)
コード2 条件:Not Null
※テーブル2の方が最新レコードが入っているので、テーブル2の差分レコードをテーブル1に追加したいというのが基本的な内容です。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
比較に使用する列にキー(インデックス)があれば良く、主キーである必要はありません。
また、不一致クエリの部分に誤解があるようですね。
テーブルを簡略化して例示します。
テーブル1/テーブル2
1 / 1
2 / 2
/ 3 ←これが検出されるクエリを作成する。
この場合、不一致クエリではテーブル1の側がNULLになります。テーブル2がNotNullでは1~3まですべて検出されてしまいます。
作成は以下の順序で行ってみてください。
1)テーブル1とテーブル2を追加して選択クエリを作成します。
テーブル2のすべてとテーブル1の結合列を表示させるようにします。
2)テーブル2の結合列をテーブル1の結合列にドラッグします。
3)結合で表示された線をクリックしてテーブル2のすべてが表示されるようにします。
4)ここで確認。例示の3行が表示されます。
5)追加分のみに絞ります。1)で作成したテーブル1の結合列の条件にIsNullを加えてください。
6)ここで確認。例示の3行目だけが表示されます。
7)5)でIsNullを設定した列の「表示」のレ点を外します。
8)ここで確認。例示の3行目のテーブル2の部分だけが表示されます。
9)デザインビューにしてメニューのクエリをクリックし、「追加」を選択します。対象は追加なさりたいテーブル(テーブル1?)を選択。
以上でいかがでしょうか?
この回答への補足
ご返答頂きありがとうございます。
実は基となるテーブルにはインデックスとなるキーが無いのです。
複数の列を組み合わせたキーを作成しないと、個別のレコードの特定が出来ません。
という返答を考えていて気付きました。
差分を抽出するだけだったら個別レコードを判別する必要は無いですよね!
基テーブルに時刻フィールドがありました。
これを基に不一致クエリを作成したら上手くいきました。
参考になりました。
それと、上記質問の様な、基がテーブルでなくクエリからでは不一致クエリは機能しないのでしょうか?
[フィールド]&[フィールド]で作成したクエリのフィールドでは不一致を導き出せないのか、はたまた数字とテキストを結んだことによるデータ型の問題なのか...
No.2
- 回答日時:
インデックスがあるほうが有利、で良いのでは?
300万件を越えるデータを付き合わせして痛い目にあいました。
> はたまた数字とテキストを結んだことによるデータ型の問題なのか...
うーん、質問文からは読み取れませんでしたね。これは影響があると思いますよ。
比較に使用する項目の条件が合いさえすれば、テーブルからでもクエリからでも不一致クエリは作成できます。
1)一致するもののみ抽出するクエリを作成
2)どちらか一方をすべて表示させ、かつ一致するものも表示するクエリに変更
3)1)の結果である「共通するもの」を除くものだけにする(2であらたに表示されたものだけにする)
と確認しながらクエリを変更してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- MySQL クエリを、PhpMyAdminで作成して実行するとき、まず、テーブルのバックアップを作成してから行う 1 2023/05/29 16:38
- Access(アクセス) アクセスで教えてください。 例えばテーブル1に 1 佐藤 2 鈴木 3 佐々木 コードと住所一覧があ 3 2022/06/11 20:45
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ACCESS 複数テーブル・複数フィールドを参照する不一致クエリ
Access(アクセス)
-
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
【access】複数のフィールドの不一致クエリ
Visual Basic(VBA)
-
-
4
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
5
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
6
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
7
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
8
Access 値の代入について
Access(アクセス)
-
9
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
10
ACCESSのクエリで抽出条件「または」は9個までしかかけませんよね…
Access(アクセス)
-
11
ACCESS 重複データを1つだけ表示したい(初心者です)
Access(アクセス)
-
12
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
13
ACCESS テーブルを見比べて、一致しないレコードを追加したいです
Access(アクセス)
-
14
【Access】テーブルをエクスポートする際、ファイル名末尾に日付をつけたい!
Windows 10
-
15
デザインビューで、連結式 を表示できません について
その他(データベース)
-
16
不一致クエリでnullまで抽出されてしまいます
その他(データベース)
-
17
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
18
ACCESS2003のグループ化のエラーについて
その他(データベース)
-
19
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
20
最新日のデータのみ抽出するクエリを教えて下さい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSで行数指定(5万行目~8...
-
アクセスで新しいレコードの追...
-
デザインビューにてテーブルが...
-
アクセス:クエリの結合とリレ...
-
更新不可能なクエリに対して更...
-
テーブル1にマクロで再クエリ...
-
ExcelのVlookupでアクセスを参...
-
Access「レコードが削除されま...
-
アクセスのクエリとDlookupはど...
-
クロス集計クエリの結果をテー...
-
ACCESS2000 クエリをテーブル化...
-
エクセル複数シートをアクセス...
-
テンポラリファイルのための空...
-
Accessのクエリで、抽出条件で…...
-
ACCESSでの重複レコードの削除
-
accessでクエリの結果だけをリ...
-
Accessのクエリを、別のmdb...
-
教えてください! アクセスのac...
-
access インポート時、既にある...
-
アクセス 項目毎にデータを横...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
Access「レコードが削除されま...
-
更新不可能なクエリに対して更...
-
アクセス クロス集計クエリ→テ...
-
アクセスのクエリでSplit関数は...
-
access インポート時、既にある...
-
ACCESSで行数指定(5万行目~8...
-
テンポラリファイルのための空...
-
Access DAOのExecuteメソッドの...
-
ACCESSでの重複レコードの削除
-
Accessのクロス集計→テーブル作...
-
Access2010「クエリが複雑すぎ...
-
access テーブル作成クエリでテ...
-
ACCESS2000 クエリをテーブル化...
おすすめ情報