
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataTableの行をソートしてD...
-
VBA基本構文の作り方 2列の...
-
GridViewで列のソートを無効に...
-
C# DataGridView のヘッダーセ...
-
構造体のリストをソートしたい。
-
VB.NETでファイル名順にファイ...
-
Double型ソート方法
-
ソートについて(その他質問あ...
-
ソートのアルゴリズム
-
C言語・要素除去
-
構造体配列の並べ替え
-
(VBA) Dir 関数で取得するファ...
-
VB6 任意の順番でのソート
-
10個の整数を入力して小さい順...
-
DataGridViewの複数列を連動し...
-
Excel VBA テキストボックス内...
-
DataGridViewのソートを止めたい
-
VB.net データセットからのCSV...
-
該当のセルのみを2次元配列に入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
VBA基本構文の作り方 2列の...
-
ファイル名「1.jpg ~10.jpg~...
-
あるディレクトリ内のファイル...
-
GridViewで列のソートを無効に...
-
C言語・要素除去
-
excel VBA の条件をつけての列...
-
Excelですべての組合せ(重複組...
-
VBScriptで配列のソートをする...
-
配列の問題
-
ブック.csvを開かずに他のブッ...
-
2次元配列を複数項目でソートし...
-
構造体配列のソート
-
listboxの並び替え
-
構造体のリストをソートしたい。
-
リスト構造のソートで悩んでま...
-
文字列をソートする方法
おすすめ情報