• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのACCESSファイルのテーブルを比較する方法)

2つのACCESSファイルのテーブルを比較する方法

naoto0216の回答

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.11

補足が長文すぎて全て読んでません(笑 すみません。 >一部のレコードが抽出されています。 >(つまり一致していないレコードがあるのです) >そのうちの1つのレコードについて、 >両テーブルのこのレコードを調べても違いが見当たりません。 >つまり、一致しているはずなのに抽出されているのです。 結局、本チャンのテーブルで同じように試してみたら 一致してないレコードがいくつかあって、その内1つの レコードを両テーブルて見比べてみたけど、違いが無さそう ・・・ってことですかね。 それって目視で確認されたのでしょうか。 ※一見、違いが無さそうでもスペース有無や全角半角など  の違いがあったりします。 本チャンのテーブル2つをIDで紐付けて選択クエリを 作成します。 例えば、ID100が一致してなかったとしたら、IDの条件を 「100」として下さい。 次に、両テーブルのフィールド1の値が同じか否か 確認する為に、 フィールド1判定: IIf([テーブル1]![フィールド1]=[テーブル2]![フィールド1],"○","×") としますフィールド1の値が異なっていたら×となります。 もし○だったら、フィールド1に関しては差異が無いという ことで、上記の[フィールド1]の箇所を[フィールド2]に書き換えて、 フィールド2を比較して・・・感じで全てのフィールドを確認 してみてはどうでしょうか。 フィールド数が多いと面倒ですが そうすれば、とりあえずどのフィールドの値が異なっている かは分かります。

yam2012
質問者

お礼

まったく同じテーブルなのに 不一致と判定される原因が分かりました。 一致していなかったレコードの1つを 確認してみましたところ、IIF文が実行される以前に、 JOIN ONの条件式にマッチしていませんでした。 (○も×も表示されていませんでした) どのフィールドでマッチしていないのかを調べてみると、 ある特定のフィールドでマッチしていないことが 分かりました。このフィールドの値は どちらも数値型でNULLになっていました。 調べてみましたところ、NULL同士の比較は、 WHEREの条件式では一致と判定されるのに対して、 JOIN ONの条件式では不一致と判定されるようです。 NULLを具体的な数値(0など)に変更して確認してみると、 正しく判定されるようになりました。この結果、 回答No9の補足コメントの(1)(2)および(1)~(13) の2つの方法のいずれにおいても、本チャンの テーブルでもすべて一致するようになりました。 念のため、一方のテーブルの値を別の値に変更して 比較すると変更したレコードだけが不一致の レコードとして検出されました。 これで2つのACCESSファイルのテーブルを正しく 比較することができるようになりました。 いろいろ親切に教えて頂きまして ありがとうございました。

関連するQ&A

  • エクセルのデータをアクセスのテーブルに移動入力する

    エクセルのデータをアクセスのテーブルに移動入力するVBA フォルダAにおいて、a1.xlsxというファイルがあり、 そのsheet1のセル(a,1)=1 A1が1 とします その値をアクセスのデータベース(これもフォルダAにあります)  b.accdbのテーブル1の フィールド1に入力したいときの エクセルマクロのVBAを御教示いただけると助かります さらに続けて フォルダAにおいて、a2.xlsxというファイルがあり、 そのsheet1のセル(a,1)=2 A1が2 とします その値をアクセスのデータベース上記と同じ  b.accdbのテーブル1の フィールド1に追加で入力したいときの エクセルマクロのVBA 以上わかると助かります よろしくお願いします win10 office365

  • これはアクセスファイルが壊れたという事でしょうか?

    ファイルを開こうとしたら、 'Id'は、このテーブルのインデックスではありません。 'ParentIdName'は、このテーブルのインデックスではありません。 と言うメッセージが消しても消しても出ます。 30回くらい消したらファイルが閉じます。 何回やっても同じ動作です。 新規に、新規 Microsoft Access データベース.accdbを作り リンクテーブルをしようとしても、同じメッセージが出てリンクできません。 もう二度とこのファイルは開けないのでしょうか? アクセス2010です。

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • ACCESS 同時使用の場合のファイルの扱い

    現在ネットワーク上に、下記の3つのデータベースを作成いたしました。 「データ.accdb」・・・データ蓄積用(CMSで取り込んだデータ1件毎に対して「入力.accdb」から追加入力) 「入力.accdb」・・・「データ.accdb」にデータを入力用(「データ.accdb」へリンクテーブル) 「閲覧.accdb」・・・「データ.accdb」を閲覧用(「データ.accdb」へリンクテーブル) 「入力.accdb」と「閲覧.accdb」では、起動時のメニュー項目が異なるため、別々のデータベースしています。 運用開始の際に、ユーザーには「入力.accdb」または「閲覧.accdb」のどちらかを使用していただくのですが、ネットワーク上にある、この2つのデータベースを使用する方法として、ネットワーク上のデータベースへのショートカットを各PC(ディスクトップ)に作成して使って頂くのと、ネットワーク上のデータベースをコピーして、使用して頂くのでは、どちが良いのでしょうか。 ユーザーは多くて同時に利用は入力用は15名 閲覧用は、30名程度を予定しており、 環境は全員同じくWIN7のACCESS2010です。 アドバイス宜しくお願いいたします。 ※一度質問させて頂きましたタイトル・内容に不備があり、削除し再度質問させていただきました。

  • Access2007のファイル削除

    Access2007を参考書を手に独学しています。 データベースファイル(△△・・・△.accdb)を作成しましたが、削除する方法がわかりません。データベースファイルの削除方法を教えてください。 もう少し具体的に説明しますと・・・ 学習の過程でデータベースファイルを作ったのですが、都合が悪くなって削除したくなりました。しかしAccess2007ではExcelのようにメニューバーに「ファイル(F)」というメニューがありません。 そこでOSの機能を使って直接削除をしました。 ところが削除したにもかかわらずAccessの初期画面では「最近使用したデータベースを開く」という場所に削除したはずのデータベース名が表示されるではありませんか。 無論これをクリックしてもエラーになります。 これを削除する方法を教えてください。よろしくお願いします。

  • アクセス インポートかファイル形式を変えたい

    壊れたアクセスファイルの中身を 新規 Microsoft Access データベース.accdbにインポートするには? 今まで開けてたのに、いきなり開けなくなった、壊れたアクセスファイルがあります。 どうしても開けないので、 新規 Microsoft Access データベース.accdb を作りそこにインポートしようとしたら、 「データベースの形式を認識できません」 となり、インポートできません。 mdb形式なのが原因なのでしょうか? win7、オフィス2010ですが、いままでmdb形式で使えてましたが Windows Updateをしたら、使えなくなりました。 mdb形式が原因なら中身はそのままで壊れたファイルをaccdbに変えたいのですが どうすればいいですか? よろしくお願いします。

  • ACCESSのテーブルを削除した後のファイルサイズ

    ACCESS2002のテーブルをいくつか削除しました。削除後に「ファイル」「データベースプロパティ」でサイズを見ると削除前と変わりません。 データを削除すると当然サイズが小さくなると思ったのですが、変わりませんでした。 「ツール」「データベールユーティリティ」「最適化/修復」をするとサイズが小さくなりました。 WordやExcelなどと違って「最適化/修復」をしないとファイルサイズは小さくならないのでしょうか? また「最適化/修復」は具体的にどんな時に使うものでしょうか?

  • ACCESSでリンクテーブルを自動的に作る方法

    ACCESS2000のデータベースが2つあって、片方のキャンペーンテーブルが2ヵ月に1度くらい随時増えていくので、もう片方のデータベースにそれに応じてリンクテーブルを自動的に増やしていく仕組みを作りたいと思っております。どなたかACCESS+VBAで良い書き方をご存知の方いらっしゃいましたら教えてください。よろしくお願いします。

  • テーブルリンクは途切れてしまいますか?

    アクセスです。 test1.accdbのテーブルをtest2.accdbへテーブルリンクしているのですが 元ファイルのtest1.accdbのファイル名を「新test1.accdb」の様に、変更した場合、テーブルリンクは途切れてしまいますか? また一つ一つ付け直ししないとだめですか?

  • oracle 7.3のアクセス権限

    パスとユーザー名が書かれたテーブルがあったとして、 それが一致するものだけ、他のデータを閲覧できるようにしたいのです。 テーブル上のデータはみられたくあ 上手くviewやアクセス権限を操作してパスとユーザーを一致させる方法はないでしょうか? 接続方法はVBAからoo4oを用いています。オラクルのアカウントは一つです。 select countのみ許可とかできればいいのですが、それは無理でしょうか? データベース初心者ですが宜しくお願いします。