Laura, this sounds like a maintenance nightmare!
You need Access to calculate this for you at runtime, and you could achieve
that if you had these 3 tables:
Company table:
CompanyID primary key
Employee table:
EmployeeID primary key
CompanyEmployee table:
CompanyID foreign key to Company.CompanyID
EmployeeID foreign key to Employee.EmployeeID
Now create two queries:
1. Create a query into the CompanyEmployee table.
Drag a 2nd copy of the CompanyEmployee table into the grid.
Access will alias it as CompanyEmployee_1.
2. In the upper pane, create a join between CompanyEmployee.EmployeeID and
CompanyEmployee_1.EmployeeID. If you see a join between
CompanyEmployee.CompanyID and CompanyEmployee_1.CompanyID, delete that line.
3. Drag CompanyEmployee.CompanyID into the query grid.
Type this into the Field row:
CommonCompanyID:[CompanyEmployee_1].[CompanyID]
In the Criteria row under this field, enter:
<> CompanyEmployee.CompanyID.
4. Save the query with the name qryEmployeeBoth. Close.
This query shows each matching company that has shared employees, and lists
who they are.
1. Create a new query into the Company table and also the query you just
saved. If you don't see a line joining Company.CompanyID to qryEmployeeID,
then drag the one field onto the other. Double-click the join line. Access
pops up a dialog offereing 3 choices. Choose the one that says:
All records from Company, and any matches from ...
2. Depress the Totals button on the toobar.
Access adds a Total row to the grid.
3. Drag Company.CompanyID and qryEmployeeBoth.CommonCompanyID into the grid.
Accept Group By under these fields.
4. Drag qryEmployeeBoth.EmployeeID into the grid. In the Total row, choose
Count.
This query lists every company matched against any other companies that have
shared employees, and the number of shared employees.
This willbe the SQL for the 2 queries:
SELECT CompanyEmployee.CompanyID, CompanyEmployee.EmployeeID,
CompanyEmployee_1.CompanyID AS CommonCompanyID
FROM CompanyEmployee INNER JOIN CompanyEmployee AS
CompanyEmployee_1 ON CompanyEmployee.EmployeeID =
CompanyEmployee_1.EmployeeID
WHERE CompanyEmployee_1.CompanyID <> [CompanyEmployee].[CompanyID];
SELECT Company.CompanyID, qryEmployeeBoth.CommonCompanyID,
Count(qryEmployeeBoth.EmployeeID) AS CountOfEmployeeID
FROM Company LEFT JOIN qryEmployeeBoth
ON Company.CompanyID = qryEmployeeBoth.CompanyID
GROUP BY Company.CompanyID, qryEmployeeBoth.CommonCompanyID;
--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users -
http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.
"Laura" <musicloverlch@(removethis)yahoo.com> wrote in message
news:fO*****************@fe1.texas.rr.com...
Here's the situation:
I'm trying to use an update query to copy data from one row to another.
Here is the situation:
I have 5 companies that are linked to each other. I need to show all 5
companies on a form. 3 of the companies have common employees. I have a
table that looks like this:
Row ID Company Common Company Common EEs (checkboxes)
1 A B
2 A C
3 A D
4 A E
5 B A
6 B C
7 B D
8 B E
9 C A
10 C B
11 C D
12 C E
13 D A
14 D B
15 D C
16 D E
and so on.
If I were to look at Company A in a form, in the form header I have:
Company A
In the detail section (as a continuous form) I show it's linked companies:
Company B
Company C
Company D
Company E
With a checkbox next to each name in the detail section.
In this scenario, company B and D have common employees with company A.
So, when you check the box next to B, I have a query that will check the
row with Company A and Company B (row 1) and the row with Company B and
Company A (row 5). The same with Company A and Company D. When you check
the box next to Company D, the update query with update row 3 (A and D)
and row 13 (D and A).
So, now company A and company B have the same info. Company A and company
D have the same info. BUT, company B and company D (rows 7 and 14) also
need to be checked and this isn't happening. How do I update those rows??
Thanks in advance,
Laura