こんにちは。
DataTableで重複した行を削除するプログラムが作れず悩んでいます。
もしよろしければ、教えてもらえないでしょうか?
例えば下記のようなDataTableのとき。
ID CD
-------------
5 A1
6 A2
8 A3
9 A4
10 A5
5 A6
10 A7
NULL A8
NULL A9
NULL A10
-------------
下記のようにしたいと思っています。
ID CD
-------------
5 A1
6 A2
8 A3
9 A4
10 A5
NULL A8
-------------
重複しているレコードは最初にヒットしたものを残します。
そこで下記のようなプログラムを書いてみたのですが、駄目でした。
' 重複行を削除する
For i = 0 To DataTable.Rows.Count - 1
Index = temp.IndexOf(DataTable.Rows(i).Item("id"))
If Index = -1 Then
temp.Add(DataTable.Rows(i).Item("id"))
Else
dr = DataTable.Rows(i)
DataTable.Rows.Remove(dr)
If i = DataTable.Rows.Count - 1 Then
Exit For
End If
i = i - 1
End If
Next
どなたか分かる方、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
一時テーブルと コレクションクラスを使ってみましょう
dim tmp as new DataTAble
dim col as new Collection
tmp.Columns.add("id")
tmp.Columns.add("CD")
for each r in DataTable.rows
if col.Contains( r("id").ToString)= false then
dim nr as DataRow = tmp.NewRow
nr(0) = r(0)
nr(1) = r(1)
tmp.rows.add( nr )
col.add( r(0).ToString,r(0).ToString)
end if
next
DataTable = tmp
DataGridView1.DataSource = DataTable
といった具合で ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
-
4
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
5
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
6
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
7
開始と終了を指定して、その間の日付を取得したい。
C言語・C++・C#
-
8
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
9
フォームの再読み込み
Visual Basic(VBA)
-
10
vbでDataTableの抽出コピー
Visual Basic(VBA)
-
11
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
-
12
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
上位3位を求めるSQL文は?
-
副問合せの書き方について
-
Access パラメータクエリをcsv...
-
VIEWの元のテーブルのindexって...
-
ある時間以内の利用者の抽出に...
-
insertを高速化させたい
-
SQL Left Join で重複を排除す...
-
ある条件の最大値+1を初番する...
-
1テーブル&複数レコードの更新...
-
エクセルの関数について教えて...
-
全角文字を含む行を検索
-
同一のユーザー、同一商品のと...
-
テーブル作成です。どこかのス...
-
ストアドのエラーについて
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] 3つのテーブルの結合で...
-
入力値と外部キーをINSERTするには
-
親と子供が複数のSQL取得方法
-
select文のwhere句に配列を入れ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報