[AccessD] Ambiguous Nmae in Query Expression

Kaup, Chester Chester_Kaup at kindermorgan.com
Thu Apr 13 13:04:54 CDT 2006


Responses in blue and italics. Thanks everyone.

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Ken Ismert
Sent: Thursday, April 13, 2006 12:19 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Ambiguous Nmae in Query Expression


Chester,

> ... First point - avoid variants wherever possible. 
> Try defining D and the function as dates ... 

While good programming practice for regular VB coding, keep the Variant
type in this case. Access Query columns always have type Variant, so
functions that are meant to be used with queries should have all
parameters defined as Variant, too. 

Tried it both as variants and as date and integer. Error message still
appears.

> ... Try a dot instead of a bang in [ProdPattern]![Date] ...

Unlikely to help. Its just two ways of saying the same thing. (I use
dot)
Tried both dot and bang with same error message.

> ... Declare the function as Static ... 

While Static can help improve the performance of functions written for
use with queries, it won't solve your error message. But just to be
extra explicit, you can use: 

   Public Static Function DaysInMonth2(ByRef D As Variant)

Made this change and still get the error message.

Since you tried the function in the module and it worked fine, you
probably don't have a duplicate function definition. 

You still have a reserved word in your query: [qry Pattern Days on
Injection by Fluid].Date. The Date function is syntactically valid
without the ending (). When you introduced the DaysInMonth2() function
in your query, Access looked for other function calls, and couldn't
decide whether Date was a function or a field. Thus, the ambiguous name
error. 

Never use field names that are the same as any VB built-in functions or
SQL reserved words. I use compound field names, like 'ProdDate' or
'PatternDate', to ensure that all field names are unique from any
reserved words. 

Here is the latest short version of the query. Still get the error
message. Frustrating. Thanks for the help everyone.

SELECT ProdPattern1.PID, DaysInMonth2([ProdPattern1].[RecordDate]) AS
Expr1
FROM [qry Pattern Days on Injection by Fluid] INNER JOIN ProdPattern1 ON
([qry Pattern Days on Injection by Fluid].ProdDate =
ProdPattern1.RecordDate) AND ([qry Pattern Days on Injection by
Fluid].PID = ProdPattern1.PID);
-Ken
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list