未设置对象变量(错误91)

时间:2016-03-30 15:56:15

标签: vb6 adodb msflexgrid

我有一个问题ADODB.RECORDSET,我有MSFlexGrid叫做flgFact什么是填充数据,我想在一个名为rsDetal的记录集上添加相关的数据但是当我编译代码时它会丢弃我(错误91:对象变量或在if

中,块变量率不是
Private Sub cmdeport_Click()
    Dim rsDetal As ADODB.Recordset
    Set rsDetal = flgFact.DataSource
    If Not (rsDetal.EOF And rsDetal.BOF) Then
           rsDetal.MoveFirst
           Do While Not rsDetal.EOF
           Numdocu = rsDetal(4)
           Fec_Emision = rsDetal(5)
           Totl = rsDetal(16)
           Igve = rsDetal(17)
           Totv = rsDetal(18)
           Mont_Pade = rsDetal(14)
           Mont_Paco = rsDetal(15)
           Call TEMPTRAMA(Numdocu, Fec_Em, Totl, Igve, Totv, Mont_Pade, Mont_Paco)
           rsDetal.MoveNext
           Loop
    End If
End Sub

我检查了我的值rsDetal,从MSFlexGrid获取的值是Nothing

1 个答案:

答案 0 :(得分:0)

如果你的MSFlexGrid没有绑定到DataSource,那么.DataSource将是Nothing。

您需要遍历网格行并访问每列中的文本。只是改变循环方式,您可能需要将字符串值从网格转换为正确的类型。

Dim lngRowCount As Long, lngFixedRowCount As Long, lngRowIndex As Long

lngRowCount = MSFlexGrid1.Rows
lngFixedRowCount = MSFlexGrid1.FixedRows

For lngRowIndex = lngFixedRowCount To lngRowCount - 1
    'Access values using MSFlexGrid1.TextMatrix(lngRowIndex, 0), where 0 is the column
Next lngRowIndex