• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OleDbDataReaderでExcelデータの読み込み)

OleDbDataReaderでExcelデータの読み込み

このQ&Aのポイント
  • VB2008からExcelデータを取得する方法としてOleDbDataReaderを使用しています。しかし、データの入っている列数が異なるシートの読み込み処理でエラーが発生しています。
  • OleDbDataReaderのFieldCountを使用して列数を取得し、ループ処理で各行のデータを読み込んでいます。しかし、列数が変わるシートの1行目でエラーが発生しています。
  • Excelからデータを取得する際に、列数が異なるシート全体を取り込む方法について教えてください。もしくは、他の方法で効率的にデータを読み込む方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • qbr2
  • ベストアンサー率50% (62/123)
回答No.1

方法は色々ありますが、今回の方法で取得するのであれば、 If Not rdr.IsDBNull(cnt) Then Debug.WriteLine(rdr.GetString(cnt)) End If として、nullの場合は読み込まないようにすれば、 例外が出力されることはなくなるかと思います。

taku_pon
質問者

お礼

できました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Fortran:列数の分からないデータの読み込み

    列数の分からないcsvファイルを想定して、配列を用いて読み込むプログラムを作成しようと考えています。 試しに十分に大きい1次元配列を用いてデータを読みこむプログラムを作成したところ 1行目読み込み時に行をまたいでデータを読み込んでしまいました。 なんとか、各行のデータだけを読み取る方法はないでしょうか? よろしくお願いします。 ちなみにプログラムの内容、入力データ、出力結果は次の通りです。 ・プログラム implicit none integer a(5),i open(10,file='a.csv',status='old') read(10,*)(a(i),i=1,5) write(*,*)(a(i),i=1,5) close(10) ・入力データ     1,2,3,4     5,6,7,8     9,1,2,3 ・出力結果     1 2 3 4 5

  • VB.netでのExcelデータの読み込み

    プログラミング初心者です。VB.net2003を使っています。 エクセルでBの列のセルデータを読み込みたいのですが、Bの列の3行目のセルから同列の最後のデータが入っているセルまでを1つずつ順番に取得して、それを配列に代入するにはどうすれば良いのでしょうか? 初歩的な質問で申し訳ないのですがよろしくお願いします。

  • SQL文のSELECTで読み、配列に取り込み

    SQL文のSELECTで読み、配列に取り込みたく、下記のプログラム作成しましたがエラー『ExecuteReader: Connection プロパティは初期化されていません。』が出て困っています。 どこで、どのように設定すればよいのでしょうか? Private Function Sosiki_kouzou() As String()() Dim Sosiki_tbl2(3)() As String Dim Dread As Data.OleDb.OleDbDataReader Dim Com As New Data.OleDb.OleDbCommand Com = New Data.OleDb.OleDbCommand("SELECT ORG_ID,SHORT_OU_JA, PARENT_ORG_ID FROM meldandy.WF_ORGANIZATION") Dread = Com.ExecuteReader Dim Cnt1 As Integer Cnt1 = 0 Do While (Dread.Read()) Cnt1 = Cnt1 + 1 Sosiki_tbl2(1)(Cnt1) = Dread.GetString(1) Sosiki_tbl2(2)(Cnt1) = Dread.GetString(2) Sosiki_tbl2(3)(Cnt1) = Dread.GetString(3) Loop Return Sosiki_tbl2 End Function VisualStadioを始めたばかりの素人です。 的外れかも知れませんがよろしくお願いいたします。

  • Excel 2007で6万5536行以上のデータ

    Excel 2007では、最大列数が従来の256列から1万6384列に,最大行数が従来の6万5536行から104万8576行に増えたと聞きました。私のExcelは、2007ですが、最大行数は6万5536行のままです。 どうしたら、6万5536行以上のデータを扱えるようになるのでしょうか? 何らかの設定変更で可能になるのでしょうか?

  • 40万行のデータをEXCELで読み込みは?

     ある時間間隔で電圧値をサンプルした約40万行のテキストデータがあるのですが、EXCELでは約6万データしか読み込めないようです。これら全データを読み込む方法はあるのでしょうか。  またはデータ数をはしょって読み込む(マクロを使う?)ことはできるのでしょうか。  データをWORDで読み込み、分割して保存しEXCELに取り込むことはできるのですが、非常に手間です。何か良い方法ご存知の方いらっしゃいましたらお願いします(こちらで聞くべき内容ではないかもしれませんが…)。

  • Excel:選択している行・列を見やすくする方法

    Excelで、行数・列数の多い表を扱っているとき、選択している行・列がどこなのか、見間違うことがあります。 行数・列数が書いてある部分が立体的になり、太字になることは知っていますが、それでも、見られる範囲を広げる為にズームを50%などとしていると、分かりにくいです。 秀丸エディタなどでは、カーソルのある行の背景色を変えたりして見やすくする機能がありますが、Excelで同じように、選択している行・列の背景色を変えるなどして、見やすくする方法はないでしょうか? Windows2000, Excel2000を使用しています。

  • Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。

    Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。 ExcelのデータをVBに読み込んで、それを並び替えするプログラムを作ろうとしています。 なのですが、ExcelのデータをVBに読み込む方法がわかりません。 ネットで調べたらopen,close,get・・とあるのですが、いまいちわかりません。 どなたか教えてください。

  • 〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転

    〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。

  • OleDbDataReaderで単精度浮動小数点項目の取得について

    VB.netと(Access OfficeXP版)MDBでプログラミングしています。 DBアタッチは、OleDb関連でやっています。 今、データベース内の単精度浮動小数点の項目(小数点以下2桁設定)が正確に取得できず悩んでいます。 String型の項目は取得できます。 Dim Myreader as OleDbDataReader While Myreader.Read System.console.WriteLine(MyReader.GetString(0)) System.console.WriteLine(MyReader.GetFloat(1)) End while これを行うと以下の実行エラーが出ます。 "符号の不一致またはデータオーバーフロー以外の理由により、データ値が変換できませんでした。" MyReader.GetFloatのところは、GetDoubleでも同様です。またGetValueにすると異常終了はしませんが、 数値はzeroが入ってきます。 よろしくお願いいたします。

  • csvファイルのデータ列数を取得したいのですがうまくいきません。

    csvファイルのデータ列数を取得したいのですがうまくいきません。 VB2010、StreamReaderでファイルを読み込み、 以下のコードで列数を取得してみたのですが、 数値変数の「列数」に7が入ります。 実際は3列しかありません。 SR.ReadLine()で読み込んだデータ右端部にいらないカンマがいくつか並んでいました。 列数 = UBound(Split(SR.ReadLine(), ",")) どう修正したらよいでしょうか。 また、csvファイルのデータ列数を簡単に取得する方法はないでしょうか? 教えてください。 お手数をおかけしますがよろしくお願いします。