使用vb6

时间:2019-02-10 13:06:52

标签: vb6

我的VB6代码读取XML文件 加载到MSFLEXIGRID 遍历每条记录,如果我看到一个断点, 不会在sql表中添加数据,除了一条记录为什么不知道之外。不会引发任何错误。

我在下面添加我的代码:

Private Sub cmdPrint_Click()
    Dim rsMtrData As New ADODB.Recordset
    Dim irow As Integer
    rsClose rsMtrData
    rsMtrData.Open "select * from Master_Meter_Reading ", cn, adOpenKeyset, adLockPessimistic
    With MSFlexGrid1
        rsMtrData.AddNew
        For irow = 0 To .Rows - 1
            .Row = irow
            .Col = 0
            rsMtrData!Snapshot = .text & ""
            .Col = 1
            rsMtrData!LoadSurveyDTime = Format(.text, "dd-MM-yyyy hh:mm:SS")
            .Col = 2
            rsMtrData!LoadSurveyDateDay = g_ConvertNumber(.text)
            .Col = 3
            rsMtrData!LoadSurveyDate = Format(.text, g_DateFormat)
            .Col = 4
            rsMtrData!LoadSurveyDateParmVal = g_ConvertNumber(.text)
            .Col = 5
            rsMtrData!LoadSurveyType = .text & ""
            .Col = 6
            rsMtrData!LoadSurveyUnit = g_ConvertNumber(.text)
            .Col = 7
            rsMtrData!LoadSurveySlipValParmVal = .text & ""
            .Col = 8
            rsMtrData!LoadSurveySlipValParmValTime = g_ConvertNumber(.text)
            rsMtrData.Update
        Next irow
    End With
    MsgBox "Data Successfully Saved", vbInformation
End Sub

1 个答案:

答案 0 :(得分:1)

您仅添加一条记录,然后对其进行更新。目前,AddNew位于循环的外部。如果更改代码并将AddNew移到For..Next循环内,则应添加更多行。

您的代码应如下所示:

Private Sub cmdPrint_Click()
Dim rsMtrData As New ADODB.Recordset
Dim irow As Integer

rsClose rsMtrData

rsMtrData.Open "select * from Master_Meter_Reading ", cn, adOpenKeyset, adLockPessimistic

With MSFlexGrid1

    For irow = 0 To .Rows - 1
        rsMtrData.AddNew    'This is the line that has moved from outside to inside the loop.

        .Row = irow

        .Col = 0
        rsMtrData!Snapshot = .text & ""

        .Col = 1
        rsMtrData!LoadSurveyDTime = Format(.text, "dd-MM-yyyy hh:mm:SS")

        .Col = 2
        rsMtrData!LoadSurveyDateDay = g_ConvertNumber(.text)

        .Col = 3
        rsMtrData!LoadSurveyDate = Format(.text, g_DateFormat)

        .Col = 4
        rsMtrData!LoadSurveyDateParmVal = g_ConvertNumber(.text)

        .Col = 5
        rsMtrData!LoadSurveyType = .text & ""

        .Col = 6
        rsMtrData!LoadSurveyUnit = g_ConvertNumber(.text)

        .Col = 7
        rsMtrData!LoadSurveySlipValParmVal = .text & ""

        .Col = 8
        rsMtrData!LoadSurveySlipValParmValTime = g_ConvertNumber(.text)

        rsMtrData.Update
    Next irow
End With

MsgBox "Data Successfully Saved", vbInformation
End Sub