Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2216 / 2272 ツリー ←次へ | 前へ→

【3400】ACCESS2002重複削除について deaiamx 04/9/3(金) 23:25 質問[未読]
【3402】Re:ACCESS2002重複削除について YU-TANG 04/9/4(土) 10:58 回答[未読]
【3404】Re:ACCESS2002重複削除について deaiamx 04/9/4(土) 16:30 回答[未読]
【3405】Re:ACCESS2002重複削除について YU-TANG 04/9/4(土) 18:37 回答[未読]
【3406】Re:ACCESS2002重複削除について deaimax 04/9/4(土) 22:17 回答[未読]
【3407】Re:ACCESS2002重複削除について よろずや 04/9/4(土) 22:44 回答[未読]
【3408】Re:ACCESS2002重複削除について deaiamx 04/9/4(土) 22:53 回答[未読]
【3413】Re:ACCESS2002重複削除について YU-TANG 04/9/6(月) 11:50 回答[未読]

【3400】ACCESS2002重複削除について
質問  deaiamx E-MAIL  - 04/9/3(金) 23:25 -

引用なし
パスワード
   はじめまして。アクセスで100万から200万件大量データをファイル内重複(テーブル内)、ファイル間重複(他テーブル)とチェックする方法ありませんか?大量なので一時ファイルやダンプ出力してもかまいません。SQLコマンドにて抽出もよいかと思います。PCはP4 1.6G 512Mです。
ACCESS2002です。あまりACCESSには詳しくない初心者ものですがよろしくお願いします。

【3402】Re:ACCESS2002重複削除について
回答  YU-TANG WEB  - 04/9/4(土) 10:58 -

引用なし
パスワード
   こんにちは、YU-TANG です。

重複クエリを作成して、削除クエリに変更すれば良いと思います。
クエリの作成方法については M$ のサイトやヘルプ、マニュアル等に
山のように解説があります。

ただ、VBA 質問箱に挙げていらっしゃるので、VBA の質問だと思うの
ですが、ご質問からではどの辺が VBA なのか読み取れませんでした。

> あまりACCESSには詳しくない初心者ものですがよろしくお願いします。

VB には詳しいのでしょうか?
とりあえず Access の(VBA 以外の)一般機能内で実現できるかどうかを
先に確認されてはいかがでしょうか。

【3404】Re:ACCESS2002重複削除について
回答  deaiamx E-MAIL  - 04/9/4(土) 16:30 -

引用なし
パスワード
   ▼YU-TANG さん:
>こんにちは、YU-TANG です。
>
>重複クエリを作成して、削除クエリに変更すれば良いと思います。
>クエリの作成方法については M$ のサイトやヘルプ、マニュアル等に
>山のように解説があります。
>
>ただ、VBA 質問箱に挙げていらっしゃるので、VBA の質問だと思うの
>ですが、ご質問からではどの辺が VBA なのか読み取れませんでした。
>
>> あまりACCESSには詳しくない初心者ものですがよろしくお願いします。
>
>VB には詳しいのでしょうか?
>とりあえず Access の(VBA 以外の)一般機能内で実現できるかどうかを
>先に確認されてはいかがでしょうか。


ありがとうございます。ACCESSはよくわからずVBならわかります。
高速処理できるようマクロをふくたいのですが....
データはまだTXTの状態です。

【3405】Re:ACCESS2002重複削除について
回答  YU-TANG WEB  - 04/9/4(土) 18:37 -

引用なし
パスワード
   > データはまだTXTの状態です。

であれば、データを 1 個のテキストファイルにまとめてしまって、
そのテキストファイルからリンクテーブルを作成し、[固有の値]
プロパティを「はい」に設定したテーブル作成クエリを 1 回実行
すれば、重複レコード無しのテーブルが作成されます。
VBA は 1 行も必要有りません。
全部 Access の基本操作のみで可能です。

繰り返しになりますが、リンクテーブルやテーブル作成クエリの
作成方法については、M$ のサイトやヘルプ、マニュアル等に山の
ように解説があります。

> 高速処理できるようマクロをふくたいのですが....

申し訳ありませんが、文章の意味がよく理解できませんでした。
このていどの処理は手動であれば数分で済みますが、VBA で組もうと
すると逆に数十分、運悪くハマると数時間はつぶれます。
いずれにしても、手動で処理するフローが確定しないと VBA も組み
ようがないのでは。

一度 基本操作で実際にやってみて、フローを確認なさってはいかが
でしょうか。
その上で、必要であれば VBA に逐次移植してみて、何か問題が発生
した時点で個別の質問を具体的に挙げると、具体的な回答が付きやすい
と思います。

# 蛇足ですが、引用は最小限に留めることをお奨めします。

【3406】Re:ACCESS2002重複削除について
回答  deaimax E-MAIL  - 04/9/4(土) 22:17 -

引用なし
パスワード
   YU-TANG様
重複クエリ抽出してそのレコードをテーブルから削除する方法
がいまいちわかりません。おしえていただけないでしょうか?

【3407】Re:ACCESS2002重複削除について
回答  よろずや  - 04/9/4(土) 22:44 -

引用なし
パスワード
   ▼deaimax さん:
>YU-TANG様
>重複クエリ抽出してそのレコードをテーブルから削除する方法
>がいまいちわかりません。おしえていただけないでしょうか?
削除するという考えを一度捨てましょう。
重複のあるテーブルを元にして、
重複のない別テーブルを新規作成するのです。

【3408】Re:ACCESS2002重複削除について
回答  deaiamx E-MAIL  - 04/9/4(土) 22:53 -

引用なし
パスワード
   どうすればよいのですか?TBLコピー作って主キーを作成する
とHELPにありましたがそのやり方でいいのでしょうか?


▼よろずや さん:
>▼deaimax さん:
>>YU-TANG様
>>重複クエリ抽出してそのレコードをテーブルから削除する方法
>>がいまいちわかりません。おしえていただけないでしょうか?
>削除するという考えを一度捨てましょう。
>重複のあるテーブルを元にして、
>重複のない別テーブルを新規作成するのです。

【3413】Re:ACCESS2002重複削除について
回答  YU-TANG WEB  - 04/9/6(月) 11:50 -

引用なし
パスワード
   こんにちは、YU-TANG です。

どうも私の説明が下手なようで、ご迷惑をおかけします。
もう一度、別の形で説明してみましょう。

次のような 2 つのテキストファイルが有ると仮定します。

【foo.txt】
ガンダム
ザク
ガンダム

【bar.txt】
ザク
リックドム
ザク

1 つのテキストファイル内でレコードの重複があり、さらに異なる
テキストファイル間でも重複があります。

これをいったん下のような 1 つのテキストファイルにまとめます。

【source.txt】
ガンダム
ザク
ガンダム
ザク
リックドム
ザク

やり方はどうでもいいです。
テキストエディタでコピー/貼り付けしても、DOS の COPY コマンド
でも、何でも構いません。

この統合済みテキストファイルからリンクテーブルを作成します。
リンクテーブルの作成手順は、MS のサイトやヘルプ、マニュアル、
市販の入門書等に山のように解説があるので、確認してください。

【リンクテーブル [source]】
F1
----------------
ガンダム
ザク
ガンダム
ザク
リックドム
ザク

このリンクテーブルからテーブル作成クエリを作成します。
テーブル作成クエリの作成手順は、MS のサイトやヘルプ、マニュアル、
市販の入門書等に山のように解説があるので、確認してください。

テーブル作成クエリの [固有の値] プロパティを「はい」に設定
します。
このプロパティ変更により、結果セットがレコード単位で重複無しに
なります。

テーブル作成クエリを実行すると、以下のようなローカルテーブルが
作成されるはずです。

【ローカルテーブル [destination]】
F1
----------------
ガンダム
ザク
リックドム

後は不要なリンクテーブルを削除すれば、終わりです。

必要であれば、上記手順が手動操作で意図どおりの結果になることを
確認後に、VBA に逐次移植するとよいでしょう。

なお Access と SQL に慣れてきたら、将来的に SQL 文一撃のように
改良しても良いかもしれませんが、最初のうちは基本に忠実に行う
ことをお奨めします。
近道を通ろうとして、メンテ不能の樹海に迷い込んだまま帰って来れ
なくなった方々がたくさんいらっしゃいますので。
# 合掌。†(ToT)/~~

2216 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078304
(SS)C-BOARD v3.8 is Free