このQ&Aは役に立ちましたか?
Accessで重複データを削除する方法
2023/10/12 15:43
- Access2010を使用しています。都道府県名フィールドと市区町村名フィールドがあり、都道府県名フィールドには重複データがあります。重複データを削除するためには、エクセルの「データ重複の削除」の機能を利用することができます。
- エクセルの重複の削除は、最初の行を残すという処理を行います。現在の方法は、Accessでデータをエクスポートし、エクセルで「データの削除」を実行しています。
- 重複データを削除するためには、Accessの操作で直接処理を行う方法もあります。詳しい方法については、公式ドキュメントを参照してください。
Access で重複データを削除
2018/09/01 08:05
Access2010を使用しています。フィールドが2個あります。【都道府県名フールド】【市区町村名フィールド】です。
都道府県フールドには、重複データが有ります。【東京都 品川区】【 東京都 大田区】【千葉県 市川市】【千葉県 船橋市】・・・・】このような重複データがある時に、エクセルの【データ 重複の削除】の様な結果が欲しい。実行後は【東京都 品川区】【千葉県 市川市】です。*エクセルの重複の削除は最初の行が残ると有りました。簡単な方法をお願い致します。現在実施している方法はアクセスで、エクセルでエクスポートして、【データ データの削除】を実施しています。
※OKWAVEより補足:「ひかりTVのサービスやISPぷらら」についての質問です。
質問者が選んだベストアンサー
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
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
お礼
2018/09/02 17:56
HohoPapaさん、回答ありがとうございます。アクセスでは、エクセルの様に、データ 重複の削除 の様に簡単操作で、私の希望する結果は出せないのですか?。回答内容の構文を教科書を見ながら学習します。マクロは私には、ハードルが高いです。