[AccessD] Circular reference error in query...

Long, Karen S. cyx5 at cdc.gov
Thu Apr 6 12:42:18 CDT 2006


You are right.  I was thinking from my mainframe days that the orderby
needed to specify noprint.... showing my age.  He does have to declare,
in order, where the fields are coming from, and then in order, where to
populate the fields.  It is easier to build the query in access and then
view the SQL to get the syntax down correctly (cheat). 


Karen S. Long
Programmer Analyst
EG&G Technical Services, Inc.
Pittsburgh, PA
Phone: 412-386-6649
Email: cyx5 at cdc.gov


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mcgillivray,
Don [IT]
Sent: Thursday, April 06, 2006 1:30 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Circular reference error in query...

Bobby,

I'm nothing like an expert with SQL, so I probably shouldn't even hazard
a guess here, but I notice that you haven't explicitly stated the fields
being updated in the target table.  Assuming that this is generally
acceptable syntax, and that there's not some default behavior that
attempts to match data by field names (like I said, I'm no expert), your
query may be trying to push into the primary key field of the target
table the first field of the recordset returned by the select clause.
Since that field may contain duplicates, you'd get a key violation upon
execution when the first duplicate is encountered.

I'd try specifying the fields to insert into for the target table:

INSERT INTO wrkSearchAvailable (FieldID, FieldDescr, DBField,
UnionField, ColWidth, ColVisible, UserID)
	SELECT FieldID,FieldDescr,DBField,UnionField,ColWidth, _
		ColVisible,UserID 
	   FROM wrkSearchSelected 
	      WHERE ID IN (11) 
		ORDER BY FieldDescr ASC;

Hope this helps . . .

Don

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bobby Heid
Sent: Thursday, April 06, 2006 9:09 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Circular reference error in query...

Hey,

I have the following:

wrkSearchAvailable and wrkSearchSelected tables (defined the same):
ID 		- autonumber/primary key
FieldID	- long/indexed (dupes ok)
FieldDescr	- text(255)/not indexed
DBField	- text(255)/not indexed
UnionField	- text(50)/not indexed
ColWidth	- double/not indexed
ColVisible	- boolean/indexed (dupes ok)
UserID	- text(75)/indexed (dupes ok)


Still here?  Good.

My query is built in VBA and the 11 in the 'IN (11)' is from a listbox -
there's only one in this example.

Here is the query:
INSERT INTO wrkSearchAvailable 
	SELECT FieldID,FieldDescr,DBField,UnionField,ColWidth, _
		ColVisible,UserID 
	   FROM wrkSearchSelected 
	      WHERE ID IN (11) 
		ORDER BY FieldDescr ASC;

This query copies the selected records from wrkSearchSelected to
wrkSearchAvailable.  The problem is that when this runs, I am getting
this
error:

error 3022
'The changes you requested to the table were not successful because they
would create duplicate values in the index, primary key, or
relationship.
Change the data in the field or fields that contain duplicate data,
remove the index, or redefine the index to permit duplicate entries and
try again.'

If I paste the SQL into the QBE, and try to execute it by clicking on
the datasheet button, I get this error message:
"Circular reference caused by alias 'FieldID' in query definition's
SELECT list."

If I execute the query using the Run button (!), I get a message that it
could not update because of key violations.

I appreciate that you have made it this far.  Anyone have any ideas as
to why I am having this issue?

Thanks,
Bobby



--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


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