偶然、「.ItemArray」同士でセットしてもいける事が分かりました。 わけわからなくなってきました。。。 DataTable2.Rows.Add(DataRow2) >1. VB6.0で よろしくお願いします。, こんばんは。 Inherits System.Windows.Forms.Form このプログラムでT_RYOSYU.Fields("cnt").ValueがNullのとき、エラーが発生しました。 ORACLEでそのような機能(SQL)はあるでしょうか? Public Class Form2     r[n] = dtRow[n]; と書いていた箇所をVB.NETで 通常はどちらでもうまくいきます。 で並べ替えたデータ群のうち,先頭の1件だけを DataViewとDataTableReaderを使うわけですね。 DataRow2("item8") = DataRow1("item8") Dim DataRow2 As DataRow ' DataRowの一時領域2 conn.Close(); DataTableからCSVへ出力できます。, はじめまして、okwebsamaです。     else For Each DataRow1 In DataTable1.Select(条件, ソート) ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる Me.Dispose() xl.Visible = True  DataRow2.ItemArray = DataRow1.ItemArray もしかして、個別セット以外に道はないのでしょうか? dataGrid1(行番号,列番号)でいいので は根本的に違うものです。 3. みたいな感じで作っていたんですが、ここから先が思いつきませんでした。 Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click DataTable2 = DataTable1.Clone   System.Text.StringBuilder sql = new System.Text.StringBuilder();  (SqlClient? OleDb?) DataRow2("item6") = DataRow1("item6") Excelからデータを読み込んで配列に格納したいのですが、どうしてもうまくいきません。 それとも、VB6.0の場合はOrの前が真の場合、後ろは判定されないのでしょうか? // DBの接続を閉じる For Each DataRow1 In DataTable1.Select(条件, ソート) vbaでテーブルの操作 実務で最もやる機会が多いであろう、テーブル内の特定データをコピーするやり方を解説します。 ここでは、下図のテーブルから、[名前]が"田中"であるデータだけを、別のシートにコピーしてみます。 conn.Dispose(); また、他の解決法や参考にできるサイトがあれば教えていただきたいです。 配列(1, 1, 2) = xl.Cells(2, 2).Value そして抽出したデータを出力するシートのCodeNameを「wsXLSDataBase」、またそのシート上のデータを出力する一番左上のセルを「rngXDB_DataTop」を名付けています。, 抽出条件を変える場合は2のところ(SQL文)を書き換えればOK。 ws = wb.Worksheets("Sheet1")     { VBA; VBAでテーブルの操作 ; テーブル内の特定行だけ削除するには、どうしたらいいでしょう。ここでは、下図のようなテーブルから、[名前]が"田中"の行だけを削除するケースで考えてみます。 これ、普通のセル範囲だったら、たとえば次のように考えます。 Sub Sample1() Dim i As Long For i … // コピー元のデータ数分だけループ いろいろなやり方がありますけど、今の主流はADO.NETのようです。 データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。 以下ソースです そこで、以下の所で困っています。 Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。 ちなみに、DataTable.Columns が DatacolumnCollection クラスです。, こんにちは。  Dim Data As String よろしくお願いします。, C#だったんですね … さほど変わりないと思いますが そこで、事前にTEST3というフィールドが、DataTableに存在するかどうか調べたいのです。   System.Text.StringBuilder valueColumns = new System.Text.StringBuilder();  (ASP.NETで質問されていますが、質問内容みると、C#という さっそく質問なのですが、 デザイナを使う方法)、クラスライブラリに機能としてSQL発行から は根本的に違うものです。 エクセルで表データを扱うときに、その表をデータベースのテーブルとして扱うとものすっごぉぉっく簡単に扱えるようになります。 データ追加編はこちら! yt4u.hatenablog.com 例えばこういった住所録があったとします。 (住所録はなんちゃって個人情報で生成したダミーデータです。 CSVとしてデータを出力するまでの処理をどうしたらいいのか エクセルvbaでテーブルを操作する方法について丁寧に解説していきます。今回は、テーブルとは、エクセルのデータリストをテーブルに変換する方法、vbaでテーブルをオブジェクトとして取得する方法をお伝えします。 そんなことはありません。 以下エラー内容 DataRow r = null; } ・DBの接続方法には、何を使ってますか?   insertColumns.Remove(insertColumns.Length - 1, 1); で選択されている行の特定の列の内容を取得できます。 >4. 確認してみてください。, DataTableに登録されているフィールドに、特定のフィールドが存在しているかどうか調べるには、どのようにすればよいでしょうか? 蛇足ですが、 お分かりになる方がいましたら、宜しくお願いします。, DataColumnCollection.Contains メソッド 行、列を指定して各セルにアクセスするには、 ############################################################# といった具合になると思います 結果としては   r = dt.NewRow(); 4. これらのメンバは、外部とのやり取りを行うものが多くあります。   command = new System.Data.OleDb.OleDbCommand(sql.ToString(), conn); DataRow2 = DataRow1 Dim tmp As String = dtTable.Rows(0).Item("TEST3"),ToString For Each DataRow1 In DataTable1.Select(条件, ソート) Dim DataRow1 As DataRow ' DataRowの一時領域1 一方Close()はインスタンスが残っているので、それを利用することができます。 ・コピー元のDataSetは、型付DataSet?型無しDataSet? 願えないでしょうか? または、 ・C# + ASP.NET でという話で宜しいでしょうか? //元のデータテーブルがdtSourceとすると VB6.0で開発していたプログラムをVB.NETに変更することになりました。 参照設定を見て、エクセルのオブジェクトライブラリーが追加されているか?? 抽出編 テスト対象のテーブル テスト対象テーブルを使いたい場合は、↓テーブルをコピーしてエクセルの a1 に貼り付けてください。 クリップボードにコピー 商品名個数 りんご4 みかん3 め … Using構文を使用するのとまったく同じ理由になります。 原因とその解決法を教えていただけないでしょうか? ところが、アプリ...続きを読む, タイトルにあるとおり、DataGridを使用している場合、実行時に選択された行の特定の列の内容を取得するにはどのようにすればよいのでしょうか?   // INSERT用SQLを生成 とすると、「1001」ではなく、「1000」が返されます。   command.Dispose(); {  MsgBox(Data) どう応用したらいいかわからないという場合は、また質問して下さい。 よろしくお願いします。, order by と rownum を併用する場合は注意が必要です。 VisualBasic.NETでプログラムを作っています。 インスタンスを明示的に破棄したほうがよい場合は多く存在します。   // INSERT値 たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む, Me.Close() どなたかご存知の方いらっしゃれば教えてください。   command.ExecuteNonQuery();   } 呼び出し方ではなく、別の要因が存在する 併記する必要がある場合がある どのDB&接続方法にしても、名前空間とクラス名が違うだけで DataGridは複雑で、まだよくわかっていません。 プロジェクトのプロパティを見て、 このエラーが出るみたいです。   // INSERT用SQL文の生成 For Each DataRow1 In DataTable1.Select(条件, ソート) --------------------  (SQL Server or Oracle or Access or その他?)   foreach (DataColumn col in d.Columns) みたいな感じで取れないですかね???, VB2005環境、DBはOracle10gです。 原因はOrの後で、Nullと0を=で比較していたからな...続きを読む, >VB6.0の場合はOrの前が真の場合、後ろは判定されないのでしょうか? 私の場合、参照設定が、上手くいっていないと ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。     // 列の型が文字列型の場合 SELECT TOP 1 項目名 FROM テーブル名 Dim DataTable1 As DataTable ' 既にテーブルデータが入っているとする ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。 'System.NullReferenceException' のハンドルされていない例外が 重度障害者用入力装置自動選択システム.exe で発生しました。  分類での質問になり、ASP.NETではないような気がします) ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる 少々情報が足りないので、回答が的外れになるかもしれませんが、 ここで4つの仮説を立ててみました。 [コピー先テーブル名] "); 併記する必要がある場合がある いまORACLE9iを使用している者です。 DataRow2("item4") = DataRow1("item4") Me.Close() 呼び出し方ではなく、別の要因が存在する よろしくお願いします。, 選択している行番号は、dataGrid1.CurrentRowIndexでわかります。 Next DataRow1 // コピー元のDataTableを取得 >3. とすれば良いです。, 今回もお世話になります。 Excel,VB.NETともに2003を使っています。 ・使っているデータベースは何ですか? 註:番号は、0始まり, ※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。 http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumncollection.contains(VS.80).aspx エラーは起きない。 Option Explicit On   sql.Append("INSERT INTO [コピー先のスキーマ]. VB6.0で開発していたプログラムをVB.NETに変更することになりました。 // テーブル構造をコピー End Class 必ず後ろも比較されます。 はエラーになります。 少々情報が足りないので、回答が的外れになるかもしれませんが、 VB.NET 2008でコーディングしています。     { 確認ですが、 >再利用できる、できないの違い ws = Nothing ・C# + ASP.NET でという話で宜しいでしょうか?     if (col.DataType == typeof(String)) 正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。  DataRow2 = DataTable2.NewRow Nullは0でも0以外でもない。(特別?), みなさまこんばんわです。よろしくお願い申し上げます。 大量のデータから必要なものを抽出するにはAutoFilterを用います。 AutoFilterの使い方 データの抽出はExcelの作業の中でも頻度の高い作業です。AutoFilterの構文は下記のとお… wb = Nothing 条件としてはグループIDが同じであるということです。   command = null;     } >1. foreach( DataRow dtRow in dtSource.Select("選択するための文字列")) よろしくお願いします。, いつもお世話になっております。 ・DataTable1から条件抽出したデータで別のDataTableを作成したい ORDER BY 項目名; もし、SQL Serverじゃない&型無しDataSetの場合だったり、 DataTable2 = DataTable1.Clone >2. VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。 conn = null; 確認ですが、 VB6.0の場合はNullでもそのようなエラーは発生しませんでした。 xl = CreateObject("Excel.Application") どのDB&接続方法にし...続きを読む, いつもお世話になっております。 If 0 = Null Then  DataTable2.Rows.Add(DataRow2) コード   System.Text.StringBuilder insertColumns = new System.Text.StringBuilder(); formについて、Close()メソッドはフォームの表示を終了させるメソッドです。   } と変更しました。 ・コピー元のDataSetは、型付DataSet?型無しDataSet? MsgBox ("にゃー") ******************* CloseとDisposeの違いについて教えていただきたいのです。 DataTable2.Rows.Add(DataRow2) 質問タイトルのままですが、DataTableに入っているデータを全てinsertしたいのです。 ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。