NOTE: I was writing this while plog was posting...
GENERAL NOTES
I would not use "&" or other special characters in table names.
I would never use just "ID" in the tables. I would use ID followed by the table name for the autonumber field that is your primary index. This avoids issues later when you are trying to make sure you are linking based on the tables ID field.
ProjectData is linked to PowerEmployees by specific jobs.
For myself, I would have a linking table that hold the ProjectDataID, EmployeeID, and the job position. Optionally you could include start and end date to track who has had that position in the past. This allows you to add positions as needed without changing your table structure. It also makes reporting easier.
NOTE: Same may or may note be true for PurchaseOrder. Based on your business model can more than one employee be related to a given PO?
For ProjectStatus, Delivery Method, Oder Priority, Material Category, OrderSubmittedVia, and Order Status, I would have ONE lookup table
How I normally set up a unified lookup table is
LookupID AutoNumber
LookupType String (For you this would be delivery, status, ect..)
LookupValue String (Value displayed, fulfilled, ordered, ect..)
LookupDescription String(Optional - Explination for the value, if needed)
LookupSeq Number(Optional - for programmer or administrator definied sequence of a lookup)
I am guessing the tables with just an ID field in them are ones you are working on.
You may have noticed that you have several tables with effectively the same structure; first name, last name, phone. I would have one table for "Contacts" that has this information. This means you could have a contractor who is also a supplier without having to enter their information twice.
The one thing I can see missing is the child under ProductsOrderLines. If you order 900 yards of concrete odds are it won't all show up the same day. You should have a child table to record when materials are delivered for a line item. This way you can record that 35 yards was delivered on March 15th, 70 on march 16th, and 120 on March 20th. You could then run through these child records to see how much is outstanding, and you can entere a "Cancelled" child for any amount that needs to be cancelled for any reason.
These are just items I can note from basic data structures and my experience with project management. As you expand this I'm sure you'll have a LOT more questions.
I do hope this help!
P.S. as this is based on my experience I am fully expecting many more comments based on other's background. Each will have a different perspective and reason for their way of doing things. No one person will be right. Please feel free to pick and choose what will work for your specific needs!