VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -