A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
(1)アクセスはそうなっているのですが、エクセルは各列に項目が記入されている内容・形式ですよね。
縦にID的項目(キー)の違うもののデータが入っているのですよね。
(2)「変更」には書式等(色、フォント・サイズ、配置、書式、計算式、図など)の変更は含まれ「ない」ですよね。
(3)変更後も変わらないID的項目(キー)はありますよね。エクセルワードからコンピューターに入った人は、レコード・キーの考え方が希薄ですが、オフラインバッチ処理から始めたものは、記述がなくて物足りない気がします。
(4)エクセルは行数が6万5千程度が限度と記憶しているのですが、ブックやシートが別になっているのでしょうか。
(#1・#4の答え関連)
(5)アクセスでSQLでやれればエクセルもそちらへ一時的
移行をする手もあります。(#4)
(6)今後への対策は、#3の通り事前に手を打っておかないと、この手の問題は面倒ですね。
(7)(1)、(2)、(3)の条件を満たせば、各ソフトで
キーの昇順で変更前と変更後のシートやテーブルをソートし
、CSV形式で保存します。レコード・キーの重複は無いものとします。
(8)あとは#2のご示唆のソフトを入手せずとも、VBA・VBで、根幹は下記20行ぐらいのMatchingのコーディングで処理できます。
(1)A(変更前),B(変更後)ファイルをオープンする。
両方レコード読みフラグ=”1”に設定。
(2)まずAを読む。キーフィールドをAKにセット。
(3)両方レコード読みフラグ=”1”か。1なら(4)へ、でなければ(5)キー比較へ行く。
(4)Bを読む。キーフィールドをBKにセット。
両方レコード読みフラグ=”0”にする。
(5)キーAKとBKを比較
(6)AK=BKなら、
AK=HighValueなら終わりルーチンへ。
でなければ、対応するフィールド(列)について
AF(i)=BF(i)かどうか比較。
不等なフィールドが見つかれば、キーと共に印字等。
両方レコード読みフラグ=”1”にする。(2)へ。
(7)AK<BKならAKは変更レコードなしか「抹消」され たもの。
両方レコード読みフラグ=”0”にして、(2)へ。
(8)AK>BKならレコードは追加されたもの。
BKは「追加」として、印字等する。
(9)Aがファイルの終わりの時、AKにHighValueをセット。(9・・・9や16進のF・・・F)
(10)Bがファイルの終わりの時、BKにHighValueをセット。
(11)終わりルーチン。
A,Bファイルをクローズ。終了する。
キーの重複があっても、ロジックを工夫次第で上手くやれる場合もあります。
昔からある方式なんですが、それだけに簡略でデータ数量に
制約されず、利用資源(出費コストも含め)が少ないはず。
時間的問題はA、Bのソート時間です。(1)-(11)の
処理時間はディスクを約8万×2読みに行く時間だけ。
No.4
- 回答日時:
Accessの場合は以下のクエリを作成して件数を数えてはいかがでしょうか。
select '追加' as 変更内容, a1.項目1
from 変更前テーブル a1
where not exists (
select b1.*
from 変更後テーブル b1
where b1.項目1 = a1.項目1
)
union
select '削除' as 変更内容, b2.項目1
from 変更後テーブル b2
where not exists (
select a2.*
from 変更前テーブル a2
where a2.項目1 = b2.項目1
)
union
select '変更' as 変更内容, a3.項目1
from 変更前テーブル a3
where exists (
select b3.*
from 変更後テーブル b3
where b3.項目1 = a3.項目1
and b3.更新時刻 <> a3.更新時刻
)
Excelの場合は、新たにsheetを作成し下記のようなセルを作ります。
=if(sheet1.a1=sheet2.a1,(sheet1.a2=sheet2.a2,0,1),1)
これを必要な行数コピーして、適当なセルに
=sum(a1:a80000)とすれば、変更のたびに自動的に計算されます。
No.3
- 回答日時:
こんにちは。
maruru01です。Accessなら、例えば[更新チェック]フィールドを新たに作り、データを変更した場合にチェックを入れるようにするとか。
そして、任意のところですべてのレコードのチェックを外し、またそこからの修正をチェックするというようにすればいいと思います。
他は[最新更新日付]のフィールドを作るの方法もあります。これなら、日付範囲で抽出して件数をカウント出来ます。
ただし、既に入力されているデータには、ダミーの日付を入れないといけませんが。
No.2
- 回答日時:
テキストデータ等に落として,ファイル比較(レコード比較)のソフトを利用すればどうでしょう?
下記のアドレスで探してみてください。フリーソフトが見つかります。
※私は"CompareJ"と言うのを使ってますが,javaが必要です。
参考URL:http://rd.vector.co.jp/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
SQLServerで同一条件レコードの...
-
ACCESSのBookmarkプロパティの...
-
ACCESS【更新クエリの中断がで...
-
Access VBA Me.Requery レコー...
-
Access 1レコードずつcsvで出力...
-
2つの項目が重複するレコード...
-
Accessでの禁止文字チェック
-
Access 削除クエリが重い
-
SQLiteで最も古いレコードのみ...
-
Accessでレコードが更新された...
-
テーブルのレコード削除ができ...
-
AccessのSQLについて教えてくだ...
-
Accessでの排他制御
-
Accessでのレコードの削除時の...
-
Access カレントレコードがあり...
-
DB2のデーターベースに、ADOで...
-
SQLデータ修正時に『このレコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
3つ以上のテーブルをUNIONする...
-
Access VBA Me.Requery レコー...
-
数百万件レコードのdelete
-
Access 1レコードずつcsvで出力...
-
Access カレントレコードがあり...
-
ACCESSのBookmarkプロパティの...
-
Access 削除クエリが重い
-
2つの項目が重複するレコード...
-
非連結サブフォームのレコード...
-
ManagementStudioからのデータ削除
-
Accessで重複したデータを一件...
-
フォームからのレコード削除に...
-
ACCESSにて全項目(レポート)...
-
Accessの重複クエリで最小以外...
-
SQLServerで同一条件レコードの...
-
(ACCESS)並び替えをしないで...
-
テーブルのレコード削除ができ...
-
Accessでの排他制御
おすすめ情報