投稿時間:2005/08/17(Wed) 14:53 投稿者名:いっせー
Eメール:
URL :
タイトル:ExcelデータをOpenRecordsetで読み込む
VB6.0です。
ExcelデータをOpenRecordsetで読み込ませていますが、不思議な現象が起きています。 MoveNextしながら一行ずつ変数に格納していきますが、最終行がExcelシート上では値が入っているに も関わらずEmpty値になってしまいます。すぐ隣のセル値は読み込めていました。
エクセルシート自体にもマクロが使ってありまして、そのEmpty値となってしまうセルは、プルダウン で指定した国に対する国コードが入ります。ですので直接入力しているわけではありません。 ちなみに直接手入力すると、Empty値ではなく正常に読み取れます。 それと、最終行までは正常に値が取得できます。
プログラムではなく、Excelシートの問題では、、、と思ったのですが、原因がさっぱり分からなく て、少しでも情報があればと思い書き込みました。よろしくお願いします。
Set gwsExcel = DBEngine.Workspaces(0) Set gdbExcel = gwsExcel.OpenDatabase("C:\oscs\bin\Contents\eb013051\eb013051.xls&q uot;, dbDriverPrompt, True, "Excel 8.0;")
Set rsopeninfo = gdbExcel.OpenRecordset("公開先指定情報", dbOpenDynaset)
With rsopeninfo Do Until .EOF lngLineCnt = lngLineCnt + 1
On Error Resume Next strFieldCd = IIf(IsNull(.Fields(0)), "", .Fields(0)) strJobRank = IIf(IsNull(.Fields(1)), "", .Fields(1)) strTMC = IIf(IsNull(.Fields(2)), "", .Fields(2)) strCommType = IIf(IsNull(.Fields(3)), "", .Fields(3)) strArea = IIf(IsNull(.Fields(4)), "", .Fields(4)) strCompanyCd = IIf(IsNull(.Fields(6)), "", .Fields(6)) strdist_eur = IIf(IsNull(.Fields(14)), "", .Fields(14)) '国コード
lngColLen = Len(strFieldCd) + Len(strJobRank) + Len(strTMC) + Len(strCommType) + Len(strArea) + Len(strCompanyCd) lngDISTLen = Len(strDIST_NAm) + Len(strDIST_CAm) + Len(strDIST_SAm) + Len (strdist_eur) lngDISTLen = lngDISTLen + Len(strDIST_Afr) + Len(strDIST_NME) + Len (strDIST_Asi) + Len(strDIST_Oce) If lngColLen + lngDISTLen > 0 Then lngRecCnt = lngRecCnt + 1 ReDim Preserve typOpenInfo(lngRecCnt) With typOpenInfo(lngRecCnt) .lngLineCnt = lngLineCnt .strFieldNm = strFieldCd .strJobRankNm = strJobRank .strTMCNm = strTMC .strCommTypeNm = strCommType .strAreaNm = strArea .strCompanyCd = strCompany .lngDISTLen = lngDISTLen .strdist_eur = strdist_eur '国コード End With End If
.MoveNext Loop End With
|