Advertisement

06.30.2008 at 03:53PM PDT, ID: 23528647
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

9.9

Error 3021

Asked by NigelRocks in Visual Basic Programming

Tags: ,

Experts,

I'm running into the following error:

"Error 3021.  Either BOF or EOF is true, or the current record has been deleted.  Requested operation requires a current record."

The line where it blows up is shown in the code snippet under the comment 'It blows up here.

The previous data record is processed before this one where it blows up, and there is no significant difference bewteen the two records.  I've tested to see if the record is deleted there, but it isn't.  I've also tested for both BOF and EOF before the line bombs.  In other words, I do this:

If Not mrsBudgetItems.EOF And Not mrsBudgetItems.BOF Then
        mrsBudgetItems.MoveNext
End If


It still gets into this block and blows up.  What's going on?
Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
Private Sub CalculateTotals()
Dim dGrandTotAllowed As Double
Dim dGrandTotDisallowed As Double
Dim dCategoryTotAllowed As Double
Dim dCategoryTotDisallowed As Double
Dim iCurCategoryID As Integer
Dim sCategoryName As String
Dim iNewCategoryId As Integer
Dim iCatIndex As Integer
Dim iGroupIndex As Integer
    
    
On Error GoTo CalculateTotalsError
    
    mclCategoryTotals.Clear
    lblTotAllowed = ""
    lblTotDisallowed = ""
    mrsBudgetItems.Filter = adFilterNone
    If mrsBudgetItems.EOF Then Exit Sub
    mrsBudgetItems.Sort = "budget_category_id"
 
    'clear category tots
    For iCatIndex = 0 To UBound(mCategory)
        mCategory(iCatIndex).TotalAllowed = 0
        mCategory(iCatIndex).TotalDisallowed = 0
        mCategory(iCatIndex).TotalFedShare = 0
        mCategory(iCatIndex).TotalLocalShare = 0
    Next
 
    mrsBudgetItems.MoveFirst
    iCurCategoryID = mrsBudgetItems("budget_category_id")
    Do While Not mrsBudgetItems.EOF
        If mrsBudgetItems("deleted") = False And Not mrsBudgetItems.Status = adRecDeleted Then
            dCategoryTotAllowed = dCategoryTotAllowed + IfNull(mrsBudgetItems("tot_allowed"), 0)
            dCategoryTotDisallowed = dCategoryTotDisallowed + IfNull(mrsBudgetItems("disallowed"), 0)
            dGrandTotAllowed = dGrandTotAllowed + IfNull(mrsBudgetItems("tot_allowed"), 0)
            dGrandTotDisallowed = dGrandTotDisallowed + IfNull(mrsBudgetItems("disallowed"), 0)
        End If
        
        If Not mrsBudgetItems.EOF Then
 
'It blows up here!
        mrsBudgetItems.MoveNext
 
        End If
        
        
        If mrsBudgetItems.EOF Then
            iNewCategoryId = -1
        Else
            iNewCategoryId = mrsBudgetItems("budget_category_id")
        End If
        'Store (and display) the category totals
        If iCurCategoryID = -1 Or iCurCategoryID <> iNewCategoryId Then
            iCatIndex = GetCategoryIndex(iCurCategoryID)
            sCategoryName = mCategory(iCatIndex).CategoryName
            mCategory(iCatIndex).TotalAllowed = dCategoryTotAllowed
            mCategory(iCatIndex).TotalDisallowed = dCategoryTotDisallowed
            iGroupIndex = GetBudgetGroupIndex(mCategory(iCatIndex).Group)
            'Add category sums to the BudgetGroup sums
            mBudgetGroup(iGroupIndex).TotalAllowed = mBudgetGroup(iGroupIndex).TotalAllowed + mCategory(iCatIndex).TotalAllowed
            mBudgetGroup(iGroupIndex).TotalDisallowed = mBudgetGroup(iGroupIndex).TotalDisallowed + mCategory(iCatIndex).TotalDisallowed
            'Display category tots in the Genral Tab's MultiColListBox
            mclCategoryTotals.AddRow sCategoryName & vbTab & Format(dCategoryTotAllowed, "currency") & vbTab & Format(dCategoryTotDisallowed, "currency")
            If iNewCategoryId > 0 Then
                iCurCategoryID = mrsBudgetItems("budget_category_id")
            End If
            dCategoryTotAllowed = 0
            dCategoryTotDisallowed = 0
        End If
    Loop
    
    mdGrandTotAllowed = dGrandTotAllowed
    mdGrandTotDisallowed = dGrandTotDisallowed
    
    lblTotAllowed = Format(dGrandTotAllowed, "currency")
    lblTotDisallowed = Format(dGrandTotDisallowed, "currency")
    
    
CalculateTotalsError:
    MsgBox "Error:" & Chr(9) & Err.Number & Chr(13) & "Desc:" & Chr(9) & Err.Description
    
End Sub
[+][-]07.01.2008 at 04:06AM PDT, ID: 21906416

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zone: Visual Basic Programming
Tags: Visual Basic, 6
Sign Up Now!
Solution Provided By: Dhaest
Participating Experts: 2
Solution Grade: A
 
 
[+][-]07.01.2008 at 05:16PM PDT, ID: 21912559

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 7-day free trial to view this Assisted Solution or ask the Experts your question.

 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628