Subform within continuous form - workaround?

J

Julia B

Hi, I know that Access doesn't let you put continuous forms within continous
forms, but I wonder if there's a workaround. What i need is this:

Main continuous form with multiple records, each record displaying its child
records, and each of these records displaying its child records. ie. 2
continuous subforms within one main continuous form.

I can't put the subforms in the footer, because that only works for single
records. My users require that multiple records are displayed.

Any ideas?

Thanks
 
A

Albert D. Kallal

Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
J

Julia B

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia
 
P

Peter Hibbs

Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

Albert D. Kallal said:
Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
J

Julia B

Thanks very much for this. I'm fine with the VBA coding. I've downloaded the
demo and will work out what I need to do.

Julia

Peter Hibbs said:
Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

Albert D. Kallal said:
Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
J

Julia B

Peter, I've had a look at this and it's exactly what I want (actually am
going to look into the more recent heirarchical flexgrid control). Thanks
very much!

One problem, when I try to insert one of these into my Access form, I get a
microsoft errror "you do not have a licence...". I've found a hotfix for the
..net development environment for this error, but not for Access. Have you any
ideas how I fix this?

Julia

Peter Hibbs said:
Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

Albert D. Kallal said:
Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
P

Peter Hibbs

Julia,

You have several options (depending on which version of Access you are
using) :-

1. You could purchase Visual Studio 6 from Microsoft. This includes
Visual Basic 6, Visual C++ 6, Visual Fox Pro 6, Visual J++ 6, etc. The
Flex Grid control comes with this software and you automatically get
the license to use it included. If you intend to use the Flex Grid
control a lot (and I have used it in dozens of projects) then this may
be your best bet. Perhaps you can find a cheap copy on ebay, (you may
be able to get it by just purchasing VB6 but I'm not sure if the Flex
Grid license comes with that version).

2. If money is no object, there are other Flex Grid controls available
from other software houses. They are more comprehensive than the MS
version but they are also fairly expensive. I have not tried them
myself but have a look at the VS Flex Grid Pro control at :-
http://www.componentsource.com/products/componentone-vsflexgrid-pro/index-gbp.html

3. For a one-off project you can just import one of the forms with a
Flex Grid control from the demo program and then change the properties
and VBA code to suit your project. If you are using Access 2000 or
later and you want to use the Hierarchical Flex Grid control I may be
able to help. I have not actually used this control, the extra Banding
facilities did not seem that useful for my projects, but I think the
code provided will work just as well in both types. If you email me
(my email address is in the demo documentation) I can send you a .mdb
file with the control on a blank form that you can then import into
your program.

Good luck with your project.

Peter Hibbs.


Peter, I've had a look at this and it's exactly what I want (actually am
going to look into the more recent heirarchical flexgrid control). Thanks
very much!

One problem, when I try to insert one of these into my Access form, I get a
microsoft errror "you do not have a licence...". I've found a hotfix for the
.net development environment for this error, but not for Access. Have you any
ideas how I fix this?

Julia

Peter Hibbs said:
Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

:

Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
J

Julia B

Thanks Peter, that's very helpful. I've downloanded the vsflexgrid component
for evaluation.

Julia

Peter Hibbs said:
Julia,

You have several options (depending on which version of Access you are
using) :-

1. You could purchase Visual Studio 6 from Microsoft. This includes
Visual Basic 6, Visual C++ 6, Visual Fox Pro 6, Visual J++ 6, etc. The
Flex Grid control comes with this software and you automatically get
the license to use it included. If you intend to use the Flex Grid
control a lot (and I have used it in dozens of projects) then this may
be your best bet. Perhaps you can find a cheap copy on ebay, (you may
be able to get it by just purchasing VB6 but I'm not sure if the Flex
Grid license comes with that version).

2. If money is no object, there are other Flex Grid controls available
from other software houses. They are more comprehensive than the MS
version but they are also fairly expensive. I have not tried them
myself but have a look at the VS Flex Grid Pro control at :-
http://www.componentsource.com/products/componentone-vsflexgrid-pro/index-gbp.html

3. For a one-off project you can just import one of the forms with a
Flex Grid control from the demo program and then change the properties
and VBA code to suit your project. If you are using Access 2000 or
later and you want to use the Hierarchical Flex Grid control I may be
able to help. I have not actually used this control, the extra Banding
facilities did not seem that useful for my projects, but I think the
code provided will work just as well in both types. If you email me
(my email address is in the demo documentation) I can send you a .mdb
file with the control on a blank form that you can then import into
your program.

Good luck with your project.

Peter Hibbs.


Peter, I've had a look at this and it's exactly what I want (actually am
going to look into the more recent heirarchical flexgrid control). Thanks
very much!

One problem, when I try to insert one of these into my Access form, I get a
microsoft errror "you do not have a licence...". I've found a hotfix for the
.net development environment for this error, but not for Access. Have you any
ideas how I fix this?

Julia

Peter Hibbs said:
Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

On Wed, 20 Feb 2008 06:54:01 -0800, Julia B

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

:

Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 
P

Peter Hibbs

Julia,

Glad to be of help. I would be interested to hear how you get on with
the VS FlexGrid control when you have tried it out. You can email me
anytime, but, if you don't have the time (or inclination), then don't
worry about it.

Incidentally, I have been told that another way to get the FlexGrid
license is to download the free VB Express 2005 program from the
Microsoft Web site at :-
http://msdn2.microsoft.com/en-us/express/aa718406.aspx
although I have not had a chance to confirm that yet.

Peter.

Thanks Peter, that's very helpful. I've downloanded the vsflexgrid component
for evaluation.

Julia

Peter Hibbs said:
Julia,

You have several options (depending on which version of Access you are
using) :-

1. You could purchase Visual Studio 6 from Microsoft. This includes
Visual Basic 6, Visual C++ 6, Visual Fox Pro 6, Visual J++ 6, etc. The
Flex Grid control comes with this software and you automatically get
the license to use it included. If you intend to use the Flex Grid
control a lot (and I have used it in dozens of projects) then this may
be your best bet. Perhaps you can find a cheap copy on ebay, (you may
be able to get it by just purchasing VB6 but I'm not sure if the Flex
Grid license comes with that version).

2. If money is no object, there are other Flex Grid controls available
from other software houses. They are more comprehensive than the MS
version but they are also fairly expensive. I have not tried them
myself but have a look at the VS Flex Grid Pro control at :-
http://www.componentsource.com/products/componentone-vsflexgrid-pro/index-gbp.html

3. For a one-off project you can just import one of the forms with a
Flex Grid control from the demo program and then change the properties
and VBA code to suit your project. If you are using Access 2000 or
later and you want to use the Hierarchical Flex Grid control I may be
able to help. I have not actually used this control, the extra Banding
facilities did not seem that useful for my projects, but I think the
code provided will work just as well in both types. If you email me
(my email address is in the demo documentation) I can send you a .mdb
file with the control on a blank form that you can then import into
your program.

Good luck with your project.

Peter Hibbs.


Peter, I've had a look at this and it's exactly what I want (actually am
going to look into the more recent heirarchical flexgrid control). Thanks
very much!

One problem, when I try to insert one of these into my Access form, I get a
microsoft errror "you do not have a licence...". I've found a hotfix for the
.net development environment for this error, but not for Access. Have you any
ideas how I fix this?

Julia

:

Julia,

One way to do what you want is to use a Flex Grid control but it will
involve some serious VBA coding. If you are up to that see :- :-
http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Flex Grid Demo.mdb'
for some examples, including one which does more or less what you are
trying to do.

Peter Hibbs.

On Wed, 20 Feb 2008 06:54:01 -0800, Julia B

Thanks Albert, I had already found this solution, but it's not going to work
for me. My users want to display the child records of all of the main records
at the same time. They don't want to have to select a record to display its
child records. They need to see everything for comparison purposes.

Hence I need continuous form within continuous form.......

Julia

:

Just simply put two sub-forms side by side.....

take a look at the last screen shot here:

http://www.members.shaw.ca/AlbertKallal/Articles/Grid.htm

You notice that we have "many" records on the left side, and "many" on the
right side.......

Because the right side sub form is not a true some form of the left side,
when you navigate to each record on the left side, the right side sub form
will not know to update its data.

The simple solution is to put in the on-current event of the left side sub
forms the following code:

me.Parent.Child2.Requery.

In the link child/master settings for child 2 form you place

linkChildFields main_id (whatever is the name of the field in
this sub-form that is used to relate back to the parent table (the left side
sub-form).

LinkMasterFields [MasterForm].[form].[ID] "masterForm" is the name of
the control you used to hold the master form, or simply the name of the left
side sub-form.

Take a look at some of the other screen shots in the above weblink I gave
you, it might give you some other interface ideas.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top