- ベストアンサー
Accessで重複データを削除する方法
- Access2010を使用しています。都道府県名フィールドと市区町村名フィールドがあり、都道府県名フィールドには重複データがあります。重複データを削除するためには、エクセルの「データ重複の削除」の機能を利用することができます。
- エクセルの重複の削除は、最初の行を残すという処理を行います。現在の方法は、Accessでデータをエクスポートし、エクセルで「データの削除」を実行しています。
- 重複データを削除するためには、Accessの操作で直接処理を行う方法もあります。詳しい方法については、公式ドキュメントを参照してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (1)
- HohoPapa
- ベストアンサー率65% (455/693)
>アクセスでは、エクセルの様に、 >データ 重複の削除 の様に簡単操作で、 >私の希望する結果は出せないのですか?。 OKWAVE ┗パソコン・スマートフォン ┗ソフトウェア ┗Access(アクセス) で再質問すれば、答えを得られるかもしれません。
お礼
HohoPapaさん、気に留めて置いてくれましてありがとうございます。構文の勉強をしています
お礼
HohoPapaさん、回答ありがとうございます。アクセスでは、エクセルの様に、データ 重複の削除 の様に簡単操作で、私の希望する結果は出せないのですか?。回答内容の構文を教科書を見ながら学習します。マクロは私には、ハードルが高いです。