<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Blog Response: Lookup fields in Access are evil?</title>
	<atom:link href="http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/feed/" rel="self" type="application/rss+xml" />
	<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/</link>
	<description>Upgrading the software development process one reader at a time.</description>
	<lastBuildDate>Mon, 23 Jan 2012 00:26:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: hazymat</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-1150</link>
		<dc:creator><![CDATA[hazymat]]></dc:creator>
		<pubDate>Sat, 24 Sep 2011 23:05:22 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-1150</guid>
		<description><![CDATA[You make some decent points. However the overall tone seems to suggest that good database design should be user-centric as opposed to developer-centric. I, of course, don&#039;t plan to disagree with this specifically, but I would like to point out that not all databases are - or should be - designed for the &#039;user&#039;.

For example, even in cases where an end user with no knowledge of the underlying database is the primary operator / owner of the data, a database belonging to a business may care more about business continuity than user experience.

Given that business continuity has many aspects; database portability (lookup fields are not common to all database standards), avoidance of assumptions (in your article you wrote &quot;you have to assume that someone writing queries is not the target of the end-user abstraction provided by lookups&quot; - this is quite some assumption for a mission-critical DB for a corporation), not to mention the fact that multiple people maintain and develop large databases owned by businesses and they may have different views on lookup data and may not assume that a given table uses such functionality - given the above, surely it&#039;s best to avoid using lookup fields when there&#039;s an alternative?

Okay, I know your rebuttal will be that businesses tend not to use MS Access for this very reason, and that MS Access is designed for the end user to make more simple databases rather than big business, but why encourage users (who, let&#039;s face it, may tweak with the database as well) to get into bad habits? And why assume that your little one-man database might not eventually develop into something that *could* become mission critical one day?]]></description>
		<content:encoded><![CDATA[<p>You make some decent points. However the overall tone seems to suggest that good database design should be user-centric as opposed to developer-centric. I, of course, don&#8217;t plan to disagree with this specifically, but I would like to point out that not all databases are &#8211; or should be &#8211; designed for the &#8216;user&#8217;.</p>
<p>For example, even in cases where an end user with no knowledge of the underlying database is the primary operator / owner of the data, a database belonging to a business may care more about business continuity than user experience.</p>
<p>Given that business continuity has many aspects; database portability (lookup fields are not common to all database standards), avoidance of assumptions (in your article you wrote &#8220;you have to assume that someone writing queries is not the target of the end-user abstraction provided by lookups&#8221; &#8211; this is quite some assumption for a mission-critical DB for a corporation), not to mention the fact that multiple people maintain and develop large databases owned by businesses and they may have different views on lookup data and may not assume that a given table uses such functionality &#8211; given the above, surely it&#8217;s best to avoid using lookup fields when there&#8217;s an alternative?</p>
<p>Okay, I know your rebuttal will be that businesses tend not to use MS Access for this very reason, and that MS Access is designed for the end user to make more simple databases rather than big business, but why encourage users (who, let&#8217;s face it, may tweak with the database as well) to get into bad habits? And why assume that your little one-man database might not eventually develop into something that *could* become mission critical one day?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-1033</link>
		<dc:creator><![CDATA[Tim]]></dc:creator>
		<pubDate>Thu, 05 May 2011 11:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-1033</guid>
		<description><![CDATA[Ran, field lookups are useful for display purposes only. If you want to work with the values, rather than just display them, you need to retrieve the &quot;originals&quot; from the relevant table.

In your example, the field spcFullName contains the foreign key, not the data itself, so if you append &quot; (Chair)&quot;, you&#039;re appending it to the key, which is why you get &quot;2 (Chair)&quot;. 

You need to add the table that the lookup refers to (let&#039;s say it&#039;s called FullNames) to the query, and replace spcFullName with Fullnames.FullName. Your calculated field will then display correctly.]]></description>
		<content:encoded><![CDATA[<p>Ran, field lookups are useful for display purposes only. If you want to work with the values, rather than just display them, you need to retrieve the &#8220;originals&#8221; from the relevant table.</p>
<p>In your example, the field spcFullName contains the foreign key, not the data itself, so if you append &#8221; (Chair)&#8221;, you&#8217;re appending it to the key, which is why you get &#8220;2 (Chair)&#8221;. </p>
<p>You need to add the table that the lookup refers to (let&#8217;s say it&#8217;s called FullNames) to the query, and replace spcFullName with Fullnames.FullName. Your calculated field will then display correctly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-1032</link>
		<dc:creator><![CDATA[Tim]]></dc:creator>
		<pubDate>Thu, 05 May 2011 11:14:33 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-1032</guid>
		<description><![CDATA[I have used lookup fields ever since my first database. It was a design feature that I picked up from an MS sample database. They save a lot of time when working directly with tables (which is very useful in the design stage). 

They have never caused me an issue, and although I read the cited article, I happily ignored it because I recognised that none of the objections applied to my design.

For my latest project, I have done without them, as I intend to upsize it. This article is making me suspect that I have added time and complexity to the design job unnecessarily, which is rather annoying.]]></description>
		<content:encoded><![CDATA[<p>I have used lookup fields ever since my first database. It was a design feature that I picked up from an MS sample database. They save a lot of time when working directly with tables (which is very useful in the design stage). </p>
<p>They have never caused me an issue, and although I read the cited article, I happily ignored it because I recognised that none of the objections applied to my design.</p>
<p>For my latest project, I have done without them, as I intend to upsize it. This article is making me suspect that I have added time and complexity to the design job unnecessarily, which is rather annoying.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ran</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-738</link>
		<dc:creator><![CDATA[Ran]]></dc:creator>
		<pubDate>Wed, 15 Sep 2010 19:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-738</guid>
		<description><![CDATA[Here’s something strange I can’t wrap my head around.  Maybe you can help.

When placing my lookup field into iif function, which appends text to the field value, I get the id value (instead of the name value).   Consider.

Problem: Append text&quot; (chair)&quot; to Full Name field based on role field value
Solution: Use iif function to append text to field via Expression Builder
Assumption: John Doe is the committee chair

Control group:  =IIf([Role]=&quot;Chair&quot;,[spcFullName],[spcFullName])
Result:   Jane Doe, John Doe, Jack Doe

Test group: =IIf([Role]=&quot;Chair&quot;,[spcFullName] &amp; &quot; (Chair)&quot;,[spcFullName])
Result:   Jane Doe, 2(Chair), Jack Doe

As you can see from the control group, the correct full name value is displayed regardless of whether or not the person’s role is ‘chair.’  As you can see in the test group though, appending text to the full name field (where person’s role IS ‘chair’) resulted in function printing the lookup id  (not the name) value.  

Any idea why the lookup field’s ID is displayed when text with appended via iif function?]]></description>
		<content:encoded><![CDATA[<p>Here’s something strange I can’t wrap my head around.  Maybe you can help.</p>
<p>When placing my lookup field into iif function, which appends text to the field value, I get the id value (instead of the name value).   Consider.</p>
<p>Problem: Append text&#8221; (chair)&#8221; to Full Name field based on role field value<br />
Solution: Use iif function to append text to field via Expression Builder<br />
Assumption: John Doe is the committee chair</p>
<p>Control group:  =IIf([Role]=&#8221;Chair&#8221;,[spcFullName],[spcFullName])<br />
Result:   Jane Doe, John Doe, Jack Doe</p>
<p>Test group: =IIf([Role]=&#8221;Chair&#8221;,[spcFullName] &amp; &#8221; (Chair)&#8221;,[spcFullName])<br />
Result:   Jane Doe, 2(Chair), Jack Doe</p>
<p>As you can see from the control group, the correct full name value is displayed regardless of whether or not the person’s role is ‘chair.’  As you can see in the test group though, appending text to the full name field (where person’s role IS ‘chair’) resulted in function printing the lookup id  (not the name) value.  </p>
<p>Any idea why the lookup field’s ID is displayed when text with appended via iif function?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: johnfx</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-705</link>
		<dc:creator><![CDATA[johnfx]]></dc:creator>
		<pubDate>Thu, 22 Jul 2010 15:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-705</guid>
		<description><![CDATA[While I don&#039;t agree with your general admonition against lookup fields, you make a good point. I&#039;ve updated the article to reflect the sometimes wonky behavior of lookup fields.

Thanks for your input!]]></description>
		<content:encoded><![CDATA[<p>While I don&#8217;t agree with your general admonition against lookup fields, you make a good point. I&#8217;ve updated the article to reflect the sometimes wonky behavior of lookup fields.</p>
<p>Thanks for your input!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jamesL</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-704</link>
		<dc:creator><![CDATA[jamesL]]></dc:creator>
		<pubDate>Thu, 22 Jul 2010 05:36:57 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-704</guid>
		<description><![CDATA[sorting does NOT work

make a table called Customer.  
make a table called Order that has a CustomerID as a lookup field 

now query Order and sort by CustomerID
a developer gets exactly what he expects: a column sorted numerically.
A user gets something completely confusing: the Customer names are NOT sorted alphabetically. The customer sees alphabetic names in the CustomerID column, but they are NOT sorted alphabetically the way he asked.

Do NOT use look up fields]]></description>
		<content:encoded><![CDATA[<p>sorting does NOT work</p>
<p>make a table called Customer.<br />
make a table called Order that has a CustomerID as a lookup field </p>
<p>now query Order and sort by CustomerID<br />
a developer gets exactly what he expects: a column sorted numerically.<br />
A user gets something completely confusing: the Customer names are NOT sorted alphabetically. The customer sees alphabetic names in the CustomerID column, but they are NOT sorted alphabetically the way he asked.</p>
<p>Do NOT use look up fields</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc M</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-642</link>
		<dc:creator><![CDATA[Marc M]]></dc:creator>
		<pubDate>Sun, 21 Feb 2010 17:41:52 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-642</guid>
		<description><![CDATA[Excellent counterpoints!!  I had stepped away from using lookup fields after I read that article too.  Thanks for providing some additional insight.]]></description>
		<content:encoded><![CDATA[<p>Excellent counterpoints!!  I had stepped away from using lookup fields after I read that article too.  Thanks for providing some additional insight.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antti R</title>
		<link>http://improvingsoftware.com/2009/10/02/blog-response-lookup-fields-in-access-are-evil/#comment-403</link>
		<dc:creator><![CDATA[Antti R]]></dc:creator>
		<pubDate>Sun, 04 Oct 2009 07:25:13 +0000</pubDate>
		<guid isPermaLink="false">http://softwareplusplus.wordpress.com/?p=38#comment-403</guid>
		<description><![CDATA[The MVPs really made me scared of lookup fields. I never implemented them. Maybe I should give them a try.]]></description>
		<content:encoded><![CDATA[<p>The MVPs really made me scared of lookup fields. I never implemented them. Maybe I should give them a try.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

