投稿日 | : 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