2016-03-30 2 views
0

У меня проблема ADODB.RECORDSET, у меня MSFlexGrid называется flgFact, что заполнено данными, и я хочу добавить эти данные, связанные с набором записей, называемым rsDetal, но когда я скомпилирую код, который он отбрасывает я (ошибка 91: переменная объекта или с переменной скоростью блока не является) в случаеОбъектная переменная не установлена ​​(Ошибка 91)

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 не Ничто

+0

В последнем предложении вашего вопроса вы ответили на свой вопрос: «Я проверил значение rsDetal и значение, взятое из MSFlexGrid, равно Nothing»: – tcarvin

ответ

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 
Смежные вопросы