こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access で重複データを削除

Access2010を使用しています。フィールドが2個あります。【都道府県名フールド】【市区町村名フィールド】です。
都道府県フールドには、重複データが有ります。【東京都 品川区】【 東京都 大田区】【千葉県 市川市】【千葉県 船橋市】・・・・】このような重複データがある時に、エクセルの【データ 重複の削除】の様な結果が欲しい。実行後は【東京都 品川区】【千葉県 市川市】です。*エクセルの重複の削除は最初の行が残ると有りました。簡単な方法をお願い致します。現在実施している方法はアクセスで、エクセルでエクスポートして、【データ データの削除】を実施しています。

※OKWAVEより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

投稿日時 - 2018-09-01 08:05:01

QNo.9532900

すぐに回答ほしいです

質問者が選んだベストアンサー

Accessはほぼ扱わないので
他に優秀なやり方があるかもしれません。
また、簡単なテストしかしていませんので
責任あるコードではありません。

課題テーブルに「フラグ」:数値タイプの作業列を追加し
こんなコードをマクロで実行すれば
期待の動作になるものと思います。

なお、残すレコードは
都道府県ごとにIDフィールドの一番小さなレコードです。


Sub Sample()
 Dim sql As String

 DoCmd.SetWarnings WarningsOn:=False
 
 '作業列全レコードに0をセット
 sql = ""
 sql = sql & "Update テーブル名" & vbCrLf
 sql = sql & "Set フラグ = 0" & vbCrLf
 DoCmd.RunSQL sql

 '作業列、残すレコードに1をセット
 sql = ""
 sql = sql & "Update テーブル名" & vbCrLf
 sql = sql & "Set フラグ = 1" & vbCrLf
 sql = sql & "Where ID in (" & vbCrLf
 sql = sql & "Select Min(ID)" & vbCrLf
 sql = sql & "FROM テーブル名" & vbCrLf
 sql = sql & "GROUP By 都道府県名)" & vbCrLf
 DoCmd.RunSQL sql
 
 '作業列、0のレコードを削除
 sql = ""
 sql = sql & "delete From テーブル名" & vbCrLf
 sql = sql & "Where フラグ = 0" & vbCrLf
 DoCmd.RunSQL sql
 
 DoCmd.SetWarnings WarningsOn:=True

End Sub

投稿日時 - 2018-09-02 15:04:20

お礼

HohoPapaさん、回答ありがとうございます。アクセスでは、エクセルの様に、データ 重複の削除 の様に簡単操作で、私の希望する結果は出せないのですか?。回答内容の構文を教科書を見ながら学習します。マクロは私には、ハードルが高いです。

投稿日時 - 2018-09-02 17:56:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>アクセスでは、エクセルの様に、
>データ 重複の削除 の様に簡単操作で、
>私の希望する結果は出せないのですか?。

OKWAVE
┗パソコン・スマートフォン
 ┗ソフトウェア
  ┗Access(アクセス)
で再質問すれば、答えを得られるかもしれません。

投稿日時 - 2018-09-09 09:30:54

お礼

HohoPapaさん、気に留めて置いてくれましてありがとうございます。構文の勉強をしています

投稿日時 - 2018-09-09 09:50:05

あなたにオススメの質問