• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 175
  • Last Modified:

something wrong with collections

Why doesn't Visual Basic let me add a user defined type structure variable to a collection?
Whenever i try to do that it gives me this compile error message:

"Only user-defined types defined in public object modules can be coerced to or from a variant or pressed to late-bound functions."

Please note that I defined my type strcture in public module. This error happens on this statement

Notes.Add Item:=newnote, Key:=Str(CurNote)

'newnote' is the variable that is declared as type structure. And 'Notes' is my collection.

Any idea?
0
mhdhallak
Asked:
mhdhallak
1 Solution
 
Erick37Commented:
"PRB: Can't Use Late Binding When Server Method Uses UDT"
http://support.microsoft.com/support/kb/articles/Q184/8/98.ASP
0
 
mhdhallakAuthor Commented:
Adjusted points from 10 to 20
0
 
mhdhallakAuthor Commented:
Erick37,

I read that page but it doesn't quite help me because it deals more with activex servers you create. In my case, i am dealing with Collection. I can't possible modify that because it's built in Visual Basic.

so what do you think i should do?

Anybody?
0
 
ArkCommented:
Hi
What's about making class module Note with Public variables (or Properties) same as in your UDT. Then:
Dim Notes As New Collection
Dim newnote as Note
......
Set newnote = New Note
Notes.Add Item:=newnote, Key:=Str(CurNote)

Cheers

0
 
pclementCommented:
The standard Collection object will accept any value that can be stored in a Variant. Unfortunately you cannot store a UDT in a Variant.

If you must use the standard Collection object the only alternative is to convert your UDT to a Class as suggested by Ark.
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now