投稿日 | : 2006/08/04(Fri) 16:10 |
投稿者 | : 上村 |
Eメール | : |
URL | : |
タイトル | : Re^2: Excelデータ取込むとNullが表示される |
花ちゃんさん、さっそくの返事ありがとうございます。
確かに、説明不足で申し訳ございませんでした。
うまく説明できないかもしれませんが、回答したいと思います。
> > ”DAOを使ってExcelデータを読み込みテキストボックスに表示・他”を一部変更して処理して
> どこをどのように変更したのですか?
xlFileName = App.Path & "\Sample.xls" ⇒ xlFileName = "D:\vb_6\Sample\" & "1.xls"
xlSheetName = "Sheet1" & "$" ⇒ xlSheetName = "記録書" & "$"
> > なぜか、Null(.Fields(17)(18)両方とも)が表示されてしまいます。(下記プログラム参照)
> どのようなデータですか? 同一列上に文字列データと数値データが混在していませんか?
同一列上には、文字列、数値、空白が混在しています。
> どのようなデータをどのように取得しているのか解らないと何とも...。
Dim MYEXCEL As Object
Dim DTX(50) as string
Set MYEXCEL = CreateObject("excel.application")
MYEXCEL.Workbooks.Open "D:\VB_6\SAMPLE\1.xls"
DTX(0)=MYEXCEL.Worksheets("記録書").Range("E5").Value
debug.pring "DT=";DTX(0)
MYEXCEL.Application.DisplayAlerts = False
MYEXCEL.Application.Quit
このような方法で取得するとデータを取込めるのですが・・・。
※デバッグに文字列が表示される
> 元々のサンプルのデータと方法では確認されたのでしょうか?
サンプルに関しては、記載の通りテキストボックス等も準備して確認しました。
これに関しては、バッチリうまく出来ました。
それで、一部(ファイル名、セル位置等は変更した)を変更して処理してみました。
そしたら、うまく取込める箇所もあるけど、Nullが表示されてしまう箇所も多々ありました。
もし、私のプログラムが間違ってる、書き方が違うと思ったら教えて下さい。
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim xlFileName As String
Dim xlSheetName As String
Dim MyData As String
'読込用のExcelファイル(パスを間違えないように)
xlFileName = "D:\vb_6\sample\" & "1.xls"
xlSheetName = "記録書" & "$"
'データベース(xlFileName)のオープン(HDR=NO で項目を読込まない)
Set DB = OpenDatabase(xlFileName, False, False, "Excel 8.0;HDR=NO;")
'Recordsetオブジェクトのオープン
Set RS = DB.OpenRecordset(xlSheetName)
'末尾レコードまでのデータを読込
Do Until RS.EOF
With RS
'A列・B列・C列のデータを取得
MyData = MyData & .Fields(17) & vbTab & .Fields(18) & _
vbTab & .Fields(19) & vbCrLf
.MoveNext '次のレコードに移動
End With
Loop
'取得したデータをテキストボックスに表示
Text1.Text = MyData
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing