Combo box values for existing and new records

C

ciruliz

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
 
R

RonaldoOneNil

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.
 
C

ciruliz

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.
 

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