• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access で重複データを削除)

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

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

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答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

syunburunn
質問者

お礼

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

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

>アクセスでは、エクセルの様に、 >データ 重複の削除 の様に簡単操作で、 >私の希望する結果は出せないのですか?。 OKWAVE ┗パソコン・スマートフォン  ┗ソフトウェア   ┗Access(アクセス) で再質問すれば、答えを得られるかもしれません。

syunburunn
質問者

お礼

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

関連するQ&A