From: ciruliz on
Hello,

I don't really know how to formulate question, so I will try to
explain problem shortly:

I have created small invoicing application in Access 2007 for renting
business - there is table of customers, table of invoices and table of
devices we offer for rent (there is one type of devices, total number
- around 10)

There is form for entering new customers and that form contains combo
box, which is lookup to devices table - so user can pick one of
devices.
Everything works so far.

I wanted to introduce new feature - when adding new customer, user can
choose only from those devices which are not rented away. So I created
subquery to limit values of combo box.

Query looks like this:

SELECT Koncentratori.ID, Koncentratori.AccountingNumber
FROM Koncentratori
WHERE (((Koncentratori.ID) Not In (SELECT customers.ConcentratorID
FROM customers WHERE (((customers.agreementActive)=Yes)); )))
ORDER BY Koncentratori.AccountingNumber;

Koncentratori (Concentrators) is the mentioned table of devices, rest
should be obvious.

So far so good.
But here comes the problem - after using this subquery, new record can
be added nicely and combo box contains only those devices, which are
not rented away. However for existing customers combo box does not
show current value - as it is in conflict with that subquery.

I am not sure how to overcome this problem, thanks for any advice!

Br,
Andis






From: RonaldoOneNil on
One way would be to create a text box on your form which is bound to the
devices field. This field is used to show the currently selected device.
Change your combo box to an unbound combo box so that it can represent
available devices. When you then make a selection from the combo box, assign
it to the new field on the form.

"ciruliz" wrote:

> Hello,
>
> I don't really know how to formulate question, so I will try to
> explain problem shortly:
>
> I have created small invoicing application in Access 2007 for renting
> business - there is table of customers, table of invoices and table of
> devices we offer for rent (there is one type of devices, total number
> - around 10)
>
> There is form for entering new customers and that form contains combo
> box, which is lookup to devices table - so user can pick one of
> devices.
> Everything works so far.
>
> I wanted to introduce new feature - when adding new customer, user can
> choose only from those devices which are not rented away. So I created
> subquery to limit values of combo box.
>
> Query looks like this:
>
> SELECT Koncentratori.ID, Koncentratori.AccountingNumber
> FROM Koncentratori
> WHERE (((Koncentratori.ID) Not In (SELECT customers.ConcentratorID
> FROM customers WHERE (((customers.agreementActive)=Yes)); )))
> ORDER BY Koncentratori.AccountingNumber;
>
> Koncentratori (Concentrators) is the mentioned table of devices, rest
> should be obvious.
>
> So far so good.
> But here comes the problem - after using this subquery, new record can
> be added nicely and combo box contains only those devices, which are
> not rented away. However for existing customers combo box does not
> show current value - as it is in conflict with that subquery.
>
> I am not sure how to overcome this problem, thanks for any advice!
>
> Br,
> Andis
>
>
>
>
>
>
> .
>
From: ciruliz on
Hi,

This is also a good solution, but it requires additional UI element on
the form, which I don't like.

Currently I received other suggestion, to use onLoad or similar event
and change properties for that combo box:

If Me.NewRecord Then
Me.cmbComboName.ControlSource = 'something
Else
Me.cmbComboName.ControlSource = 'something else
End If

And it seems to be solving my problem, although I am not sure, if it's
the most effecient solution.

Rgs,
A.




On May 18, 2:18 pm, RonaldoOneNil
<RonaldoOne...(a)discussions.microsoft.com> wrote:
> One way would be to create a text box on your form which is bound to the
> devices field. This field is used to show the currently selected device.
> Change your combo box to an unbound combo box so that it can represent
> available devices. When you then make a selection from the combo box, assign
> it to the new field on the form.
>
>
>
> "ciruliz" wrote:
> > Hello,
>
> > I don't really know how to formulate question, so I will try to
> > explain problem shortly:
>
> > I have created small invoicing application in Access 2007 for renting
> > business - there is table of customers, table of invoices and table of
> > devices we offer for rent (there is one type of devices, total number
> > - around 10)
>
> > There is form for entering new customers and that form contains combo
> > box, which is lookup to devices table - so user can pick one of
> > devices.
> > Everything works so far.
>
> > I wanted to introduce new feature - when adding new customer, user can
> > choose only from those devices which are not rented away. So I created
> > subquery to limit values of combo box.
>
> > Query looks like this:
>
> > SELECT Koncentratori.ID, Koncentratori.AccountingNumber
> > FROM Koncentratori
> > WHERE (((Koncentratori.ID) Not In (SELECT customers.ConcentratorID
> > FROM customers WHERE (((customers.agreementActive)=Yes)); )))
> > ORDER BY Koncentratori.AccountingNumber;
>
> > Koncentratori (Concentrators) is the mentioned table of devices, rest
> > should be obvious.
>
> > So far so good.
> > But here comes the problem - after using this subquery, new record can
> > be added nicely and combo box contains only those devices, which are
> > not rented away. However for existing customers combo box does not
> > show current value - as it is in conflict with that subquery.
>
> > I am not sure how to overcome this problem, thanks for any advice!
>
> > Br,
> >  Andis
>
> > .