本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

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

1人が「役に立った」と評価
ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access で重複データを削除)

Accessで重複データを削除する方法

2023/10/12 15:43

このQ&Aのポイント
  • Access2010を使用しています。都道府県名フィールドと市区町村名フィールドがあり、都道府県名フィールドには重複データがあります。重複データを削除するためには、エクセルの「データ重複の削除」の機能を利用することができます。
  • エクセルの重複の削除は、最初の行を残すという処理を行います。現在の方法は、Accessでデータをエクスポートし、エクセルで「データの削除」を実行しています。
  • 重複データを削除するためには、Accessの操作で直接処理を行う方法もあります。詳しい方法については、公式ドキュメントを参照してください。
※ 以下は、質問の原文です

Access で重複データを削除

2018/09/01 08:05

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

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

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

ベストアンサー
2018/09/02 15:04
回答No.1

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 17:56

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

質問者

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

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (2件中 1~2件目)

2018/09/09 09:30
回答No.2

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

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

お礼

2018/09/09 09:50

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

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。