Quantcast
Channel: VBForums - Visual Basic 6 and Earlier
Viewing all articles
Browse latest Browse all 21273

passing outer while loop recordset value in to inner loop recordset in vb6.0

$
0
0
Dear Sir
I am getting error The object is already open
that means inner recordset("rsre") is already open and again trying to open.

Please help me to solve the issue

Private Sub fn()

'On Error GoTo ErrHandler

Dim varSlNo As Integer
Dim varTypCode As Integer

Dim SqlStr As String

Dim rs As New ADODB.Recordset
Dim rsRe As New ADODB.Recordset

Dim varASValue As Double
Dim varPFValue As Double


lvwDutyPayable.ListItems.Clear

SqlStr = "select INVOICE.InvoiceTypeCode, INVOICE.TarrifHeadNumber, INVOICE.ExchangeRate, CETSH.GoodsDescription, INVOICETYPEMASTER.InvoiceTypeName, " _
& " Sum (INVOICE.BasicValue * INVOICE.ExchangeRate) as AssValue" _
& " From INVOICEITEMS, INVOICE, CETSH, INVOICETYPEMASTER " _
& " Where INVOICETYPEMASTER.InvoiceTypeCode=INVOICE.InvoiceTypeCode " _
& " and month(INVOICE.InvoiceDate)='" & Month(dtpReturnMonth) & "' and year(INVOICE.InvoiceDate)= '" & Year(dtpReturnMonth) & "' " _
& " and INVOICE.BranchCode= " & cpBraCode & " group by " _
& " INVOICE.InvoiceTypeCode, INVOICE.TarrifHeadNumber, INVOICE.ExchangeRate, CETSH.GoodsDescription, INVOICETYPEMASTER.InvoiceTypeName " _
& " Order by INVOICE.InvoiceTypeCode desc, INVOICE.TarrifHeadNumber"
rs.Open SqlStr, CN, adOpenKeyset, adLockReadOnly

If rs.RecordCount <> 0 Then

Do While Not rs.EOF

varASValue = rs.Fields("AssValue")
varPFValue = 0

SqlStr = "Select InvoiceCharges.ChargesValue*Invoice.ExchangeRate as PFValue from" _
& " InvoiceCharges,Invoice " _
& " where InvoiceCharges.ChargesCode=1 " _
& " and INVOICE.FinYearCode= INVOICECHARGES.FinYearCode and " _
& " invoice.BranchCode = invoicecharges.BranchCode And invoice.InvoiceNumber = invoicecharges.InvoiceNumber " _
& " and month(INVOICE.InvoiceDate)='" & Month(dtpReturnMonth) & "' and year(INVOICE.InvoiceDate)= '" & Year(dtpReturnMonth) & "' " _
rsRe.Open SqlStr, CN, adOpenKeyset, adLockReadOnly
varPFValue = varPFValue + rsRe.Fields("PFValue")
varASValue = varASValue + varPFValue

If varTypCode <> rs.Fields("InvoiceTypeCode") Then

With lvwDutyPayable.ListItems.Add(, , "")
.SubItems(1) = rs.Fields("InvoiceTypeName")
.ListSubItems(1).Bold = True
End With

varTypCode = rs.Fields("InvoiceTypeCode")

End If

varSlNo = varSlNo + 1
With lvwDutyPayable.ListItems.Add(, , varSlNo)
.SubItems(1) = rs.Fields("TarrifHeadNumber")
.SubItems(2) = rs.Fields("GoodsDescription")
.SubItems(3) = "U"
.SubItems(4) = Format$(rs.Fields("SumQuantity"), "0.000")
.SubItems(5) = Format$(rs.Fields("SumQuantity"), "0.000")
.SubItems(6) = Format$(varASValue, "0.000")
.SubItems(7) = varPFValue
End With
rsRe.MoveNext
rs.MoveNext

Loop
End If
rsre.close
rs.Close


End If
Exit Sub
ErrHandler:
Call ErrHandler(Err.Number, Err.Description, Me.Name, "Restore")
MsgBox "Error occured during Restore", vbCritical, "Error"

End Sub

Thanks
Ram

Viewing all articles
Browse latest Browse all 21273

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>