Help With "Join Types" When Setting Up Relationships
Apr 26, 2006
Ok here goes another Newbie question, I've been doing a lot of reading on the web and in books about relationships and setting them. But when I go to Access and set the relationships, theres a button called "Join Types". When clicked it brings up the "Join Properties" window with these three options in it:
1. Only Include rows where the joined fields from both tables are equal.
2. Include ALL records from "Company" and only those records from "Customer" where the joined fields are equal.
3. Include ALL records from "Customer" and only those from "Company" where the joined fields are equal.
I think im having trouble understanding what exactly these are refering to. The terms I think are throwing me off. If I had a table called "Company" with all the common info in it like name, address and such, What exactly is the "ROW" in that table, and the "RECORDS" of the table.
I think I need clarification on this so I can properly identify them, also if its possible could somebody supply an example for when I would use each join type? Your help is much appreciated. Thanks! ~[MikE]~
I have a table which contains a list of names and the trades that each one is qualified for and a second table for a project which requires a number of different trades to fill specific roles. How do I set up a proper relationship between the two tables.
Tbl_employee. empl_ID| Empl_Name | Discipline 001 | Mathew | Construction Manager 002 | Mark | Safety officer 003 | Luke | Construction Manager 004 | John | Architect
Tbl_Proj. Project_ID Project_name Project_Architect Project Manager Health & Safety
Each employee could have more than one role on each project, one role on each project, or no roles on a project.
I have a form that shows a complete record for each project and permits me to select who fills what roles from a combo box for each role.
Using the relationship editor I try to create relationships between the following:
I then set up a SELECT in the rowsource of each combo box on the form WHERE the Discipline is whichever is required by the combobox
The raltionship editor allows the creation of a relationship between Discipline and the (multiple) various roles on the project, but if I try to 'Enforce Referential Integrity' It refuses to work.
Do I need 'Referential Integrity' and if so How do I make it work?
I would like to create a small HR database that holds:
* Employee details (Name, Date of birth, Entry Date, Exit Date, Function,Department, Shift) * Departments * Departments and capabilities needed * Employee, departments and capability achieved (1=yes, 0=no)
The idea would be to have a link between the employee the departments capabilities I can tick fields of the capabilities they have or have achieved.
When I have this I could run a report that shows a score per employee For example:
Name: Department: Orderpicking: Packing: Cutting:
John Warehouse 1 1 0
As the tasks / capabilities required are different per department you would see something different if you would have user Jane that works in accounting
Is there anyone that can give me some hints so that I can get any further??
For the moment I have 3 tables:
1. Employee information - John, Jane 2. Departments - Warehouse, Accounting 3. Department tasks - Department, Cap1, Cap2, Cap3, Cap4
I dont' know what happend but now when i tried to add something to one of my subforms i get this error The LinkMasterFields property setting has produced this error:'The object doesn't contain the Automation object'Claims Header." i had it working not sure when it got screwed up. i'm freaking out. i have to get this working correctly.
EDIT: just to make sure it's ok to do this. my subform is running from a table that has my uid from my main form claim_id and i have it linked from those fields. currently the claim_id i'm looking to add to isn't in the table that my subform runs off of.
I have 5 tables and 2 forms. The primary form is what I input all the information into (Tracking) and the other form is to update employee information (update form).
The "Tracking" form is where I add information to 4 of the 5 tables. Here is where I'm stumbling. Would it be more practical to just have 1 table and just expand the fields, or have the form put the information into the separate tables. Those 4 tables are Employee, phone, spotter and radio.
I'm wanting to keep a running tally of who doesn't turn in what equipment on what day.
I've been toiling with the issue of WHERE clauses on the "Right" side of Left Joins. I'm aware that you need to use JOIN ON......AND.... rather than JOIN ON....WHERE.... if the WHERE relates to the Right Hand table.
I've even got an example in my DB where the above works, but now am struggling to use the same theory for other tables. Therefore, I went and created two Mickey Mouse tables to test the logic but am getting an error.
I have Table 1 with one field called Field 1 - values A, B, C Table 2 as follows
Field 1.....Field 2.......Field 3 A.............100 C.............200..........XXX
I hoped to have a query that finds all records on Table 1 and records on Table 2 where Field 1 matches on the two tables and Field3 = XXX
My SQL is SELECT Table1.Field1, Table2.Field1, Table2.Field2, Table2.Field3 FROM Table1 INNER JOIN Table2 ON Table1.Field1 = Table2.Field1 AND Table2.Field3="XXX";
And then called this join as a symbol or variable, and then have it use to select the items from these joined tables, can this be done in Access? Here is an example of a code that I created, but it has an error message saying the FROM syntax is incorrect.
Code: SELECT firstJOIN.trainID, firstJOIN.trainName, firstJOIN.stationID, firstJOIN.stationName, firstJOIN.distance_miles, firstJOIN.time_mins FROM (trains INNER JOIN ((station INNER JOIN lineStation ON station.stationID = lineStation.stationID) INNER JOIN bookingLeg ON bookingLeg.startID = station.stationID or bookingLeg.endID = station.stationID ) ON trains.trainID = bookingLeg.tid) as firstJOIN
Can Access do something similar to this, in the FROM statement I joined 4 tables, because each unique fields are in each table and I have to joined them to get those fields. I called this join firstJOIN and in the SELECT statement, I list those columns in the table by calling it firstJOIN.trainID. Can Access do something like this, but syntax it differently?
I have an Excel file (sourced externally) linked as a table. All fields are defined as text fields. In some of the Excel cells, data has somehow been entered as numeric (eg phone number). When I query the Excel file thru Access, these fields show up as errors (#num!).
I need to find a way of interogating the field, and if in error (like these ones), then ignore it, or replace with zeros etc.
I'm a student trying to get to grips with relational databases and Access is a great tool to learn.
Does access support 0..1 and 0..many relationships? I've been playing around with Access for a while and can't seem to model the 0..1 and 0..many relationships.
Just a quick stupid question, I have a Yes / No data type in my table but I want it to automatically put no unless I change it to Yes, is there an easy way to do this, probably a really simple question but am new to this and any help would be great
I need to display a drop down list to users. I know that in a combo box, the user can also type text. However, I want to stop them from doing this and only be able to select values.
Is there a better control I could use? I tried the listbox but this does not seem to "drop down" the data like a combo
I am building a table where one of the fields is a yes/no field type. When the yes box is selected, I need to "jump" to a different set of field names than field names for selecting no. I have researched on internet and have done some reading but have found no information. Is it possible to do what I want to do in Access? My skill level is that I can build tables, create forms, create reports and run simple queries. Any help offered is appreciated.
I'm trying to append a group of fields to a SQL table using ADO in VBA. One of the fields I'm writing back to is a datatime and in certain situations there won't be a value, however, when I try this it throws in the beginning of time 1/1/1900 or whatever it is. Any ideas?
I am trying to do an inner join with a left join. The only problem is, I want to inner join the table that is being joined. This is how I thought it would work below, but it doesn't work.
SELECT * FROM ((Submissions LEFT JOIN Candidates ON Submissions.`Candidate Code` = Candidates.`Candidate Code`) INNER JOIN `Type Candidate Status` ON Candidate.Status = `Type Candidate Status`.`Status ID`) WHERE Submissions.Status <> 7 ORDER BY `School Interest` DESC;
I want to get the Candidate.Status to inner join with the `Type Candidate Status`.`Status ID`.
Strange but true. I am trying to numeric data types on my access 2000 where I could input values in table like 0.3567 or 2.3454 Anyway any values of this kind with 4 decimal places. however somehow the values always get rounded to number + 4 zeros as of example: if I put 0.756769 I want it to be as 0.7568 but I get 1.0000 I don't understand this. Can anyone help please? I have not used access for ages and I seemed to be forgeting all this stuff.
hi everyone, i sort of run into a dead end trying to figure how to structure this. I have three tables for the 3 roles, tblClients, tblDoctors, tblBusinessContacts, each with a Primary key and some unique information about each role. I'm not sure how i can track appointments to each of these roles, i know how to do it if it was one role. I want to be able to later view all appointments for that day with all 3 of these roles.
Also, for clients i have a multiselect listbox describing their reason for the appointment and somewhow would like to associate that to the appointments. Some info i would like about these appointments:
1. date and time 2. details of contact 3. date for next appointment
Hi, I am designing a database. It is going to store data from questionnaires. The natural way seems to be to have a table - that stores where the data comes from, what is it about, what is the question and what is the answer, like this: DataProviderID; FocusID; QuestionID; AnswerValue
My problem is that a Focus could be a eg. a Person, a Company or a Job - meaning that somebody may be giving info on an other person, on a Company or on a Job. Now Persons, Companies and Jobs would have very different properties. So how should I solve this shold I have a common table for Peoples, Companies and Jobs and use a very complicated structure of properties for them or should I store these entities in separate tables but than how will I store the results?
Hi all! I'm experiencing an apparently simple problem, but it's taking me too long to solve :confused: Two tables with a "text" (100) column on each. I want to select those who are identical. ¡So easy! thats the where clause:
AND a.sDesEntidad = b.sNombreLargo
That works fine. But... i want to "relax" the clause, by not considering dots ( . ) when comparing, and i do like this:
AND (Replace([a]![sDesEntidad],'.','') = Replace([b]![sNombreLargo],'.',''));
and i get a run-time Error 3464, Data type mismatch in criteria expression. Oooops! My access version is 2003, spanish. I would really appreciate ur help, since this matter shouldn't be keeping me busy for so long :( Regards and thx in advance! Alejandro
I have a table with a field for "type". I want a query to run that will show everyone exept "type" A and B. I can get it to work with one of them using Criteria "Not A" and it works. But cannot figure out how to make it not show both A and B
Wondering if anyone has a solution for my problem.
I have 2 data sources, one which is an ODBC and one which is an import table. I have a 2 queries each querying the 2 data sources seperatly.
My problem is... One of the fields which I need to do a join to a reference table has a different data type in each of the data sources. I have tried changing this in the imported table NO JOY!! You cant change the data type in the ODBC link.
I am trying to do a comparison between two values and am getting the following error:
Microsoft JET Database Engine error '80040e07' Data type mismatch in criteria expression.
The code that is creating the error is as follows:
sb = Request.Form("storyboardscreen")
if Not Lcase(Request.Form("AllStoryBoard")) = "all" then whereClause = whereClause + "theStoryboard = " + sb end if
I am using the statement to build the where clause of my query. The sb value is retrieved from a pull down menu and "theStoryboard" column is the db is of data type "text". The values stored in the field are 12 digit numbers. I have tried doing a cstr to sb but that doesnt work, any tips on what I am doing wrong? I am using asp with an access db....
I have a database that, vaguely looks like the following
NAME Value Category A Value Category B Value Category C
Name A -50 0 0 Name A 0 50 0 Name B -100 0 0 Name B 0 75 10 Name B -25 0 0 Name C -100 0 0
Etc. etc.
What I'd like is to find a query that will first, generate a Category D which should be a total of all the values in the three different categories and consolidates the names to one line. So it should spit something like this out.
NAME Value Category A Value Category B Value Category C Total Name A -50 50 0 0 Name B -125 75 10 -40 Name C -100 0 0 -100
After this, I'd like to have another query that will only display the values that are NOT zero.
NAME Val Cat A Val Cat B Val Cat C Total Name B -125 75 10 -40 Name C -100 0 0 -100
I am struggling with an answer table for multiple type answers. Some questions have yes/no answers, some have option group answers (agree, neutral, disagree), and some require text input.
I have reviewed posts on normalization on survey design. In it's simplest form I would have 3 tables.
tblQuestions QuestionID QuestionText
tblAnswerCodes AnswerID AnswerText
tblResponses PersonID date QuestionID AnswerID
If all answers required an option group value then I would use the structure above.
If all the answers were yes/no I would eliminate tbl AnswerCodes and simply have an answer field with data type yes/no in tblResponses.
But if an answer requires a user text comment, I would need either a memo field or a 255 length text field. This is where I get confused. It seems inefficient to use a memo or text field for all answers when most of the questions require a yes/no answer. I feel the answer is somewhere in setting up another table with answer types, but I am struggling with this.
On a further note I am struggling with the response data entry form. For an option group answer I could setup an append query for each new survey response. But how about for multiple answer (check all that apply). I guess I need a form based on a query linking tblQuestions to tbl AnswerCodes. This would be a subform on the master form for tblResponses. I keep getting all the answers for all questions. But handling multiple question types on one continuous form seems awkward.
I have a Union query that brings together several tables into one. This works perfectly well however there is an occassion when a field in one table has its data type changed to text from date. This is to allow N/A to be entered rather than a date. When this occurs the union query changes all the dates from the other tables to text also and therefore other queries I am running based on the Union query now fail.
Is there any way to have the Union Query ignore the data from the table where and when this this occurs as it is not necessary to show in the query and can happen with any of the tables at a users discretion