[AccessD] Drew - Help on TreeView Please

Drew Wutka DWUTKA at Marlow.com
Mon Aug 31 16:40:14 CDT 2009


No problem.  I just sent you the fix off list.  Correcting this
particular error showed two more issues which I fixed too.  

Ironically, the issue wasn't technically a treeview issue.  However it
did relate to how I personally use treeviews (so my example used this
method).  The nodes of a treeview have to have a unique key. So if you
have ten thousand nodes, each node 'key' must have unique to the other
9,999 nodes.  With a table, you would use an Autonumber, however, with a
treeview branching out, I will use a 'natural' key of sorts, which makes
the node key more meaningful (and useful in later code).

For example, let's take names:

1  Bob
2  Dave
3  Tina
4  Drew

The numbers being the ID (autonumber field) from a table.  If we were to
make a set of 'root' or top level nodes with these names, I would use
the following as the key for that node(without the quotes): 'ID:1'
(which would be for the 'Bob' node, 'ID:3' for the Tina node, etc.

Now if I want to include children nodes to the top level nodes, let's
have a table of pets:

1  Dog(s)
2  Cat(s)
3  Fish
4  Birds
5  Other

This data would be recorded in a PersonID PetID table, like this:

1  1
1  3
4  2
4  3

So I would set the children nodes, to use the following Key (without the
quotes) 'ID:1:1' or 'ID:4:3'

So the data above would look like this in a treeview (and I will put the
node keys in parenthesis)

Bob (ID:1)
--Dog(s)(ID:1:1)
--Fish(ID:1:3:)
Dave (ID:2)
Tina (ID:3)
Drew (ID:4)
--Cat(s) (ID:4:2)
--Fish  (ID:4:3)

The advantage of using 'natural' keys like this in a node, is that you
can interact with a node in a few ways (clicking, dragging, etc.) and
when you do so, you will have a node object, WITH a Key.  So by making
the key relevant to what the node actually represents (while maintaining
it's uniqueness) we can actually infer at least two critical pieces of
information by Split()ing the Key property into an Array().  One, in
this case, we know that if the Ubound of the split is 2, it's a top
level node, and thus a Person, if it's 3, then it's a 'pet' node.  In
VB, where I typically use Treeviews, it's very easy to have dynamic
popup menus, so this ability of determining what type of node is being
'right clicked' allows me to popup different 'defined' menus.  The other
piece of information is the key value to retrieve data (or set data) in
the original tables.

I didn't put all this in the offlist email, but I figured I'd explain it
a bit in case anyone is playing around with Treeviews.

Drew

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris
Fields
Sent: Monday, August 31, 2009 3:36 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Drew - Help on TreeView Please

Thanks, I've sent it to you off-list via YouSendIt.  I really appreciate

your help.
T

Drew Wutka wrote:
> Sure, send it too me.  I'll look at it when I get the chance.
>
> Drew
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Tina Norris
> Fields
> Sent: Monday, August 31, 2009 8:32 AM
> To: Access Developers discussion and problem solving
> Subject: [AccessD] Drew - Help on TreeView Please
>
> Hi Drew,
>
> After running into a number of frustrations working on the TreeView, I

> set it aside for a few months.  Now, I've come back to working on it. 
>
> Thanks very much for the example database you made.  It works
perfectly,
>
> so I used your code as a basis to build a practice database. 
>
> I am running into a runtime error  
> "Run-time error '-2147217904(80040e10)':
> No value given for one or more required parameters."
The information contained in this transmission is intended only for the person or entity 
to which it is addressed and may contain II-VI Proprietary and/or II-VI Business 
Sensitive material. If you are not the intended recipient, please contact the sender 
immediately and destroy the material in its entirety, whether electronic or hard copy. 
You are notified that any review, retransmission, copying, disclosure, dissemination, 
or other use of, or taking of any action in reliance upon this information by persons 
or entities other than the intended recipient is prohibited.





More information about the AccessD mailing list