You mention that this occurs "in some scenarios": can you reproduce these
cases reliably?
I could take a look if you can put a sample workbook together.
Tim
tim j williams
at gmail dot com
(no spaces, and the obvious stuff)
"J Streger" <(E-Mail Removed)> wrote in message
news:125C36CD-AF62-471D-9618-(E-Mail Removed)...
>I just tried it and no change. I was always under the impression that:
>
> myCollection.item(index) is equivalent to myCollection(index)
>
> Also I cannot use .item for the call to the WBSID as the value I will
> index
> is a property of the class. I guess I can try and put the value as the key
> rather than the property, but that would be a bit of work.
> --
> *********************
> J Streger
> MS Office Master 2000 ed.
> MS Project White Belt 2003
>
> User of MS Office 2003
>
>
>
> "Tim Williams" wrote:
>
>> Have you tried explicitly specifying "Item()"
>>
>> Public Function Month(index As Integer) As clsMonth
>>
>> If index > pMonth.Count Or index < 1 Then
>> Err.Raise 9
>> Else
>> Set Month = pMonth.Item(index)
>> End If
>>
>>
>> End Function
>>
>>
>> I think I already made this suggestion some time ago. Did it not work ?
>> Item works for indexes as well as string keys.
>>
>> Tim
>>
>>
>> "J Streger" <(E-Mail Removed)> wrote in message
>> news:4E9BFED6-23A8-44BE-BA5E-(E-Mail Removed)...
>> >I have a class module that has a collection of another class module
>> >(MONTH)
>> > that has a collection of a third class module (WBSID) with a property
>> > of
>> > ACWP. It seems that in some scenarios, if I call this line in the top
>> > level
>> > class:
>> >
>> > Me.Month(1).WBSID("ABC123").ACWP = 50
>> >
>> > All WBSID with the name property of "ABC123", regardless of which month
>> > they
>> > are in, chance to 50, even though I specifically call one month. And I
>> > just
>> > want to set the single month's value, not any other month. Below is the
>> > code
>> > that refers to this in my classes (sorry for lack of comments, haven't
>> > gotten
>> > around to it). Thanks for any help as this is driving me nuts.
>> >
>> > Top Level Class:
>> >
>> > Private pMonth As New Collection
>> >
>> > Property Set Months(S As Collection)
>> > Set pMonth = S
>> > End Property
>> > Property Get Months() As Collection
>> > Set Months = pMonth
>> > End Property
>> > Public Function Month(index As Integer) As clsMonth
>> >
>> > If index > pMonth.Count Or index < 1 Then
>> > Err.Raise 9
>> > Else
>> > Set Month = pMonth(index)
>> > End If
>> >
>> > End Function
>> >
>> > Month class:
>> >
>> > Private pWBSID As New Collection
>> >
>> > Property Set WBSIDs(S As Collection)
>> > Set pWBSID = S
>> > End Property
>> > Property Get WBSIDs() As Collection
>> > Set WBSIDs = pWBSID
>> > End Property
>> > Public Function WBSID(index As Variant) As clsWBSID
>> > If IsNumeric(index) Then
>> > If index > pWBSID.Count Or index < 1 Then
>> > Err.Raise 9
>> > Else
>> > Set WBSID = pWBSID(index)
>> > End If
>> > Else
>> >
>> > Dim WP As clsWBSID
>> >
>> > For Each WP In pWBSID
>> > If UCase(WP.ChargeCode) = UCase(index) Then
>> > Set WBSID = WP
>> > Exit For
>> > End If
>> > Next
>> >
>> > End If
>> > End Function
>> >
>> > WBSID Class:
>> >
>> > Private pACWP As Double
>> > Private pChargeCode As String
>> >
>> > Public Property Let ChargeCode(S As String)
>> > pChargeCode = S
>> > End Property
>> > Public Property Get ChargeCode() As String
>> > ChargeCode = pChargeCode
>> > End Property
>> > Public Property Let ACWP(S As Double)
>> > pACWP = Round(S, 1)
>> > End Property
>> > Public Property Get ACWP() As Double
>> > ACWP = pACWP
>> > End Property
>> > --
>> > *********************
>> > J Streger
>> > MS Office Master 2000 ed.
>> > MS Project White Belt 2003
>> >
>> > User of MS Office 2003
>> >
>>
>>
>>
|