vbでDataTableの抽出コピー
DataTableから条件抽出したデータで別のDataTableを作成したい
・DataTable1から条件抽出したデータで別のDataTableを作成したい
・データの件数が違うだけでヘッダーなどの内容は同じにしたい
Dim DataTable1 As DataTable ' 既にテーブルデータが入っているとする
Dim DataTable2 As DataTable ' これに一部のデータとヘッダーを複写
Dim DataRow1 As DataRow ' DataRowの一時領域1
Dim DataRow2 As DataRow ' DataRowの一時領域2
<試作1:NG DataRowの使いまわしがきかない>
DataTable2 = DataTable1.Clone
For Each DataRow1 In DataTable1.Select(条件, ソート)
DataTable2.Rows.Add(DataRow1)
Next DataRow1
<試作2:NG ワンクッションかましただけではダメ>
DataTable2 = DataTable1.Clone
For Each DataRow1 In DataTable1.Select(条件, ソート)
DataRow2 = DataRow1
DataTable2.Rows.Add(DataRow2)
Next DataRow1
もしかして、個別セット以外に道はないのでしょうか?
DataTable2 = DataTable1.Clone
For Each DataRow1 In DataTable1.Select(条件, ソート)
DataRow2 = DataTable2.NewRow
DataRow2("item1") = DataRow1("item1")
DataRow2("item2") = DataRow1("item2")
DataRow2("item3") = DataRow1("item3")
DataRow2("item4") = DataRow1("item4")
DataRow2("item5") = DataRow1("item5")
DataRow2("item6") = DataRow1("item6")
DataRow2("item7") = DataRow1("item7")
DataRow2("item8") = DataRow1("item8")
DataTable2.Rows.Add(DataRow2)
Next DataRow1
何か良い方法はありませんか?
No.1ベストアンサー
- 回答日時:
dim dv as DataView
dim rd as DataTableReader
DataTable2 = DataTable1.Clone
' 1)選択条件から DataViewを生成して
dv = new DataView( DataTable1, "条件", "ソート", DataViewRowState.CurrentRows)
’2)ToTableで DataTableを生成し これを引数にDataTableReaderを生成
rd = new DataTableReader(dv.ToTable())
'3)Loadメソッドで 行データを取り込み
DataTable2.Load( rd )
rd.Close
といった具合でできますよ
ありがとうございます。
DataViewとDataTableReaderを使うわけですね。
こちらでもアレコレ試してみましたが、
偶然、「.ItemArray」同士でセットしてもいける事が分かりました。
DataTable2 = DataTable1.Clone
For Each DataRow1 In DataTable1.Select(条件, ソート)
DataRow2 = DataTable2.NewRow
DataRow2.ItemArray = DataRow1.ItemArray
DataTable2.Rows.Add(DataRow2)
Next DataRow1
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- MySQL MYSQL エラー 2 2022/10/18 11:37
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- 数学 「(((a0)/2)・1, 1) …(a0)/2の1倍と1の内積 =(a0)(1, 1) …1 と1 5 2022/07/05 19:11
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
DataTableから条件を満たした行を別のDatatableへコピーしたい
その他(プログラミング・Web制作)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
-
4
この行は既に別のテーブルに属しています
Visual Basic(VBA)
-
5
VB.net 重複チェックがしたいです
Visual Basic(VBA)
-
6
Hideについて(.NET)
Visual Basic(VBA)
-
7
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
8
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
9
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
DataSetのFilter
Visual Basic(VBA)
-
12
Visual Basic 6.0 コンボボックスのChangeイベントが発生しません
Visual Basic(VBA)
-
13
DataTableで重複行を削除したい
Visual Basic(VBA)
-
14
VBのReturnの使い方
Visual Basic(VBA)
-
15
VB.NETでDataTableにデータ追加したい
Visual Basic(VBA)
-
16
VB.NETで、配列をテーブルに変換して表示する。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リスト構造のソートで悩んでま...
-
C# DataGridView のヘッダーセ...
-
C言語でファイルの中身をソー...
-
C++ 入力した3つのint型の整数...
-
VBScriptで配列のソートをする...
-
C言語・要素除去
-
mysqlで日本語の並び替え
-
C言語について
-
C# DataTableの行をソートしてD...
-
System.IO.Directory.GetFiles...
-
構造体配列の並べ替え
-
listboxの並び替え
-
VB.NETでファイル名順にファイ...
-
コレクションの数値をSortで並...
-
VBA基本構文の作り方 2列の...
-
GridViewで列のソートを無効に...
-
ファイル名「1.jpg ~10.jpg~...
-
列のどこをクリックしてもソー...
-
自己参照構造体を使った2分探...
-
C言語 配列の長さの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
ファイル名「1.jpg ~10.jpg~...
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
Excelですべての組合せ(重複組...
-
列のどこをクリックしてもソー...
-
n番目に大きい数を求めるアル...
-
Excel VBAで並べ替えをしたい
-
DataGridViewの昇順降順。
-
vbでDataTableの抽出コピー
-
数字文字列のソート方法
-
VB6でデータを昇順に並べ替える
-
VBScriptで重複レコードを削除...
-
ListViewのソートについて
おすすめ情報