• ベストアンサー

Excelシートの読み込み

Excelシートからデータを取得してくるとき、 Excel上では値が入っているにもかかわらず Vb側ではNullになってしまいます。 Dim ExcelRec As DAO.Recordset … … 変数 = ExcelRec(0).Value ← この時点でNull … ご教授ください。 環境 Vb6.0、Excel2000

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

  • ベストアンサー
  • leftovers
  • ベストアンサー率100% (2/2)
回答No.4

#3です。 http://support.microsoft.com/kb/194124 これではないかしらん?

その他の回答 (3)

  • leftovers
  • ベストアンサー率100% (2/2)
回答No.3

横からすいません。 自分もまったく同じ状況です。 http://www.bcap.co.jp/hanafusa/VBHLP/dao_002.htm というサイト様のTipsをコピペして実験してみた所、半角数字が入ってくるとOKかな?とは思いました。 Fields(0)でコケるんですよねぇ バグなんでしょうか? ・・・すいません。回答になってなくて

回答No.2

#1です。補足で頂いたプログラムでテストしましたが、問題なく動きました(^^; データがない場合は、Nullと出ましたが、データのある部分は正常に動いたので、プログラムはよさそうですが・・・。 MsgBox ExcelTableDef.Name などで、どのシートのデータをとろうとしているのか確認して、本当にデータがあるのかどうか見るくらいしか思いつきません。 お役に立てず、すみません。

Lazio_ss
質問者

お礼

わざわざありがとうございました。 今、読み込んでいるExcelは正常に読み込みできるデータとできないデータがあるんですよ。 Excelのほうで文字列にしたりだとかいろいろ試してみたんですがだめでした。 ほかの対策を考えます。 お忙しいところ、ありがとうございました。

回答No.1

>… >変数 = ExcelRec(0).Value ← この時点でNull の上の…の部分がないと、明確なアドバイスはできないのですが、 select文でデータを取っていますよね? 変数 = ExcelRec.Fields(0) にしてみてはどうでしょうか?

Lazio_ss
質問者

補足

説明不足ですみません。 補足しますと、 Dim ExcelDB As DAO.Database Dim ExcelTableDef As DAO.TableDef Dim ExcelRec As DAO.Recordset Set ExcelDB = OpenDatabase(Excelのファイル名,False, False, "Excel 8.0;HDR=NO;") For Each ExcelTableDef In ExcelDB.TableDefs Set ExcelRec = ExcelDB.OpenRecordset(ExcelTableDef.name, dbOpenTable) Do Until ExcelRec.EOF 変数 = ExcelRec.Fields(0) 変数 = ExcelRec.Fields(1) … ExcelRec.MoveNext Loop ExcelRec.Close Set ExcelRec = Nothing Next ExcelTableDef … … ご指摘の通り、Fields(0)でやってみましたがだめでした。 Select文は使っておりません。 よろしくお願いします。

関連するQ&A