- ベストアンサー
2つのACCESSファイルのテーブルを比較する方法
naoto0216の回答
#2です。 >サイズが異なった場合には、 >実際のテーブルのデータのどこかが異なっている >と一般的に言えるのでしょうか? 失礼しました。勘違いしておりました。 ちなみに、それぞれのテーブルのレコード数は同じってことで よいんですかね(レコード数の違いだけなら不一致クエリですぐ 分かるハズなのでわざわざ質問しないはず)。 で、どこかのフィールドで異なった値が入ってるのではないか ・・・ってことを知りたいってことなんでしょうか。 VBAを使わないとなると、 ファイル1のテーブルA ファイル2のテーブルA ID ------------- ID フィールド1 ------------ フィールド1 フィールド2 ------------ フィールド2 ・ ・ フィールド10 ---------- フィールド10 っていうクエリAを作ります。 ※別のaccdbを作るか、ファイル1にファイル2のテーブルAを リンクします。 例えばテーブルAのレコード数が1万レコードだったとして 全てのフィールドの内容が一致してたら、このクエリも 1万レコードになるはずです。どこかのフィールドに異なった 値が1つあれば、9999レコードになります。 で、このクエリAとファイル1のテーブルAとの不一致クエリ を作成します。 そうすれば、何レコード目に異なった値があるかは確認できます。 ※要するにファイル1のテーブルAにはあって、クエリAにはない IDが分かる。 とはいっても、どのレコードかってのが分かるだけであり どのフィールドが異なっているかは上記だけでは把握できません。 フィールド数が少なければ、目視で比較してもよいかもしれませんが。。 とりあえずどのレコードか(どのIDか)さえ分かれば、そのID 限定でクエリを作って、比較すればよいかと思います。 それぞれのテーブルAをIDで紐付けて、上記で分かったIDを条件とし それぞれのフィールドが一致しているか比較すればよいかと思います。 SQLだと、 SELECT [テーブル1].ID, IIf([テーブル1]![フィールド1]=[テーブル2]![フィールド1],"○","×") AS フィールド1判定, IIf([テーブル1]![フィールド2]=[テーブル2]![フィールド2],"○","×") AS フィールド2判定・・・って感じです。 ※テーブル1がファイル1のテーブルA、テーブル2がファイル2のテーブルA 上記の方法はフィールド数が多く、比較するテーブル数も多いと 余計に手間がかかってしまいますので、ここまで書いてしまいましたが お勧めできないやり方です。
関連する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
- 締切済み
- Excel(エクセル)
- これはアクセスファイルが壊れたという事でしょうか?
ファイルを開こうとしたら、 '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、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。
- ベストアンサー
- SQL Server
- ACCESS 同時使用の場合のファイルの扱い
現在ネットワーク上に、下記の3つのデータベースを作成いたしました。 「データ.accdb」・・・データ蓄積用(CMSで取り込んだデータ1件毎に対して「入力.accdb」から追加入力) 「入力.accdb」・・・「データ.accdb」にデータを入力用(「データ.accdb」へリンクテーブル) 「閲覧.accdb」・・・「データ.accdb」を閲覧用(「データ.accdb」へリンクテーブル) 「入力.accdb」と「閲覧.accdb」では、起動時のメニュー項目が異なるため、別々のデータベースしています。 運用開始の際に、ユーザーには「入力.accdb」または「閲覧.accdb」のどちらかを使用していただくのですが、ネットワーク上にある、この2つのデータベースを使用する方法として、ネットワーク上のデータベースへのショートカットを各PC(ディスクトップ)に作成して使って頂くのと、ネットワーク上のデータベースをコピーして、使用して頂くのでは、どちが良いのでしょうか。 ユーザーは多くて同時に利用は入力用は15名 閲覧用は、30名程度を予定しており、 環境は全員同じくWIN7のACCESS2010です。 アドバイス宜しくお願いいたします。 ※一度質問させて頂きましたタイトル・内容に不備があり、削除し再度質問させていただきました。
- ベストアンサー
- その他MS Office製品
- 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で良い書き方をご存知の方いらっしゃいましたら教えてください。よろしくお願いします。
- ベストアンサー
- Visual Basic
- テーブルリンクは途切れてしまいますか?
アクセスです。 test1.accdbのテーブルをtest2.accdbへテーブルリンクしているのですが 元ファイルのtest1.accdbのファイル名を「新test1.accdb」の様に、変更した場合、テーブルリンクは途切れてしまいますか? また一つ一つ付け直ししないとだめですか?
- ベストアンサー
- オフィス系ソフト
- oracle 7.3のアクセス権限
パスとユーザー名が書かれたテーブルがあったとして、 それが一致するものだけ、他のデータを閲覧できるようにしたいのです。 テーブル上のデータはみられたくあ 上手くviewやアクセス権限を操作してパスとユーザーを一致させる方法はないでしょうか? 接続方法はVBAからoo4oを用いています。オラクルのアカウントは一つです。 select countのみ許可とかできればいいのですが、それは無理でしょうか? データベース初心者ですが宜しくお願いします。
- ベストアンサー
- その他(データベース)
補足
回答ありがとうございます。 >ちなみに、それぞれのテーブルのレコード数は >同じってことでよいんですかね はい。レコード数もフィールド数も同じです。 >どこかのフィールドで異なった値が入ってるのではないか >・・・ってことを知りたいってことなんでしょうか。 はい。すべてのフィールドの値が一致していることを 確認できればいいです。 >ファイル1のテーブルA ファイル2のテーブルA > ID ------------- ID >フィールド1 ------------ フィールド1 >フィールド2 ------------ フィールド2 >っていうクエリAを作ります。 は、 不一致クエリウィザードで作成したクエリに対して (ウィザード画面では1つのフィールドしか結線できないので) デザインビューで ID -----------> ID フィールド1 -----------> フィールド1 フィールド2 -----------> フィールド2 というように結線すればよいのでしょうか。 これが正しいとして >このクエリAとファイル1のテーブルAとの >不一致クエリを作成します。 は、 不一致クエリウィザードで、 テーブルAと、 クエリのラジオボタンを選択して 先ほど結線したクエリAとを選択して 同様にウィザードを進めていけば よいのでしょうか。 >上記の方法はフィールド数が多く、 >比較するテーブル数も多いと >余計に手間がかかってしまいます 手で一から入力するのは大変なので 不一致クエリウィザードで生成した クエリ式をコピーして 修正するようにしています。 よろしくお願いします。