Subject RE: [IBO] Grid lookup Please!!!
Author Dion
Hi All,

I have got to the point where I can edit the titleid value in the grid, but
not with the dropdown(embedded). When following Helens instructions, I get a
'field not found' error. What should the KeyLinks look like?

MemberBen (NB!!!!! a table in the database)
---------
memberid benid titlid firstname surname ...


Beneficiary (NB!!!!! a table in the database)
-----------
benid titleid firstname surname ...


Title (NB!!!!! a table in the database)
-----
titleid title


qryMemberIdBen (a 'master' dataset, ib_query, in the application.)
-----------
this is a join between Member and Beneficiary.


qryTitleLK (a 'lookup' dataset, ib_query, in the application for the
dropdown in the grid.)
----------


I don't understand how you can prefix TitleId with either 'MemberBen' or
'qryMemberIsBen'?
Firstly, qryMemberIsBen is not an actual table in the database, and
MemberBen does not have a column called 'TitleId'.

(Helen)
> KeyLinks of the Lookup dataset:
> TitleID=MainQuery.TitleID

Thanks,
Dion.


-----Original Message-----
From: Helen Borrie (TeamIBO) [mailto:helebor@...]
Sent: Sunday, January 20, 2002 6:20 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] Grid lookup


At 03:59 PM 20-01-02 -0800, you wrote:
>Hi all,
>
>Is it possible to have a lookup on a field in a "joined" table. For
example,
>if MemberBen is the table representing the relationship between a Member
and
>his Beneficiaries, and titleid is the foriegn key in the Beneficiary table,
>how do you get a drop down in for eg a grid, of all possible titles from
the
>Title table. There seems to be a problem declaring KeyLinks for the lookup
>query.

Lookup fields refer to columns, not tables (but see my NOTE, below) so the
join doesn't affect the ability to implement the lookup. Just don't include
the Title table in the join, though. Use a correlated subquery to bring the
Title text into the main query. Include TitleID in the field list for the
main query, just don't display it.

Mainquery would be

SELECT a.Field,
........
b.TitleID,
...,
(SELECT Title as The_Title
FROM Titles t WHERE t.TitleID = b.TitleID),
....
FROM (tables, joins and wheres)

The lookup dataset is

SELECT TitleID, Title FROM Titles

KeyLinks of the Lookup dataset:
TitleID=MainQuery.TitleID

KeyDescLinks of the Lookup dataset:
Title=MainQuery.The_Title

Don't forget to link the lookup dataset's KeySource property to the
datasource of MainQuery.

Just make sure the joined query is squeaky-clean with respect to join syntax
and table identifiers.
Use JOIN, not the SQL-89 inner join syntax.

Note: If you've eliminated all possibility of ambiguity and yet find you
get problems using the aliases, then remove the aliases and substitute with
fully-qualified columns in the join statement. Do that as a last resort,
though. IBO should be able to peel back and do the linking through the
aliases.

cheers,
Helen

regards,
Helen Borrie (TeamIBO Support)

** Please don't email your support questions privately **
Ask on the list and everyone benefits
Don't forget the IB Objects online FAQ - link from any page at
www.ibobjects.com



___________________________________________________________________________
IB Objects - direct, complete, custom connectivity to Firebird or InterBase
without the need for BDE, ODBC or any other layer.
___________________________________________________________________________
http://www.ibobjects.com - your IBO community resource for Tech Info papers,
keyword-searchable FAQ, community code contributions and more !

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/


---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.314 / Virus Database: 175 - Release Date: 01/11/2002

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.314 / Virus Database: 175 - Release Date: 01/11/2002