Sandy

Just from a quick look, your Controls_Array is a local variable. Any changes you make to it in Fill_Array are lost when the procedure finishes. The struct definition is global, but not (in this case anyway) the variable(s) you base on it.

Change Fill_Array to a function and return the struct, or have a property of that type (Controls_Data) and Set that in the procedure, then Get it when you want to use it.

Mike

(How come you are still working, old fella? Just can put down the keyboard? )