Solved

vb6 run time error '381' Invalid property array index.

Posted on 2014-03-05
8
387 Views
Last Modified: 2014-03-13
When I run the code seen below, I get the Run Time error '381' Invalid property array index. The line the debugger points to is...
.fields("fo_rackType") = Me.cboRackType.ItemData(Me.cboRackType.ListIndex)

Any ideas on how to fix this error?  Thanks in Advance,
Here's the code...

Private Sub cmdInsert_Click()
    'take the current Zone that you are on, then make the endZone the
    'endZone of the new Zone.  Have the user pick tHe beginning zone and
    'make the end of the old zone the zone prior to the beginning of the
    'new zone
    
    Dim lngZoneNumb As Long
    Dim rowZoneRow As Integer
    Dim strZoneCode As String
    Dim strZoneLoc As String
    
    If Not rsZoneConfig.EOF Then
        If Not Trim(rsZoneConfig.fields("StartZoneCode")) = Trim(rsZoneConfig.fields("endZoneCode")) Then
            
            'flag that this PickZone Configuration has changed
            Me.cboPickZoneName.ItemData(Me.cboPickZoneName.ListIndex) = 1
            
            lngZoneNumb = rsZoneConfig.fields("ZoneNumber") + 1
            rowZoneRow = Me.grdZoneConfig.Row
            strZoneCode = Trim(rsZoneConfig.fields("endZoneCode"))
            strZoneLoc = Trim(rsZoneConfig.fields("endZoneLoc"))
            
            rsZoneConfig.MoveNext
            If Not rsZoneConfig.EOF Then
                rsZoneConfig.fields("ZoneNumber") = rsZoneConfig.fields("ZoneNumber") + 1
            End If
            
            With rsZoneConfig
                .AddNew
                .fields("ZoneNumber") = lngZoneNumb
                .fields("EndZoneCode") = strZoneCode
                .fields("EndZoneLoc") = strZoneLoc
                .fields("fo_building") = Me.cboBuilding.ItemData(Me.cboBuilding.ListIndex)
                [b].fields("fo_rackType") = Me.cboRackType.ItemData(Me.cboRackType.ListIndex)
[/b]                .fields("ZoneName") = Trim(Me.cboPickZoneName.Text)
                .fields("ZoneQty") = 0
                .fields("PacksNeeded") = 0
                .fields("UnitsNeeded") = 0
            End With
            
            'reset the Zone numbers
            rsZoneConfig.MoveNext
            Dim icount As Long
            icount = lngZoneNumb + 1
            While Not rsZoneConfig.EOF
                rsZoneConfig.fields("ZoneNumber") = icount
                rsZoneConfig.MoveNext
                icount = icount + 1
            Wend
    
            rsZoneConfig.Sort = "ZoneName, fo_building, fo_rackType, ZoneNumber"
            
            Me.grdZoneConfig.Refresh
            
            Me.grdZoneConfig.Row = rowZoneRow + 1
            Call grdZoneConfig_ButtonClick(1)
        Else
            MsgBox "You can not insert a Zone Here", vbExclamation, "Pick Zone Configuration"
        End If
    End If
End Sub

Open in new window

0
Comment
Question by:tesla764
  • 3
  • 2
8 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 39907464
Note that ListIndex will be -1 if nothing is selected, so will not be an index into the itemdata array,
0
 

Author Comment

by:tesla764
ID: 39907552
Hi Graham,
  I'm not sure what you mean by "Code put into code box, but I now see that the line was highlighted in the text." Did you change or provide something?

Your info about the listbox being -1 is helpful.
0
 

Author Comment

by:tesla764
ID: 39907948
Thanks for the explanation, I didn't know that.  I will continue this tomorrow. Will you be available for contact?
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 76

Expert Comment

by:GrahamSkan
ID: 39907988
There is no guarantee on this forum that any particular expert will be available. However as more comments are applied, the question becomes less visible to the other contributors. So, in effect, you are probably stuck with me anyway.
0
 
LVL 5

Expert Comment

by:advfinance
ID: 39908222
Not true, I'm here too! But your man Graham has got this covered.

--
Chris
0
 

Author Comment

by:tesla764
ID: 39913618
Sorry I haven't responded just yet. I will soon. I have been working on other problems that have arisen.
Thanks for you patience.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
This article will show, step by step, how to integrate R code into a R Sweave document
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now