You will need something like the following for tables:
tblProjects
ProjectID (PK)
Location, etc. (information specific to the project)
tblFarms (I assume you mean server farms)
FarmID
ProjectID (FK)
Other details specific to the Farm
tblServers
ServerID (PK)
FarmID (FK)
ServerName
ServerLocation
IP_Address
etc.
tblApps
AppID (PK)
ServerID (FK)
AppOwner
AppName
With so few provided details it is difficult to be specific, but it would
probably be something like the above. In general, each table should contain
information about a single real-world identity (I borrowed that phrase from
somebody, and would give credit if I could remember who said it). Another
way to look at it is that a table's purpose should be describable by a
single sentence without using the word "and". Projects and servers and apps
is too varied an assortment of information for a single table (if you are
relating a bunch of tables one-to-one just to get around the 255-field
limitation you are in effect using a single table).
In the outline above, each project is a record in a Projects table; each
server is a record in a Server table, and so forth. I am assuming from what
you have said that apps are being installed on servers. If they are being
installed on machines with desktop OSs then you will need records for those
machines, maybe in their own table, or maybe in a Computers table that
includes servers. Whatever the details, you can have any number of servers
in a farm, and any number of apps on a computer, without needing to redesign
the database. Another app is just another record in the apps table.
The layout you have suggested is appropriate to a spreadsheet, not to a
relational database. Access can be a powerful and useful tool for what you
need to do, but not if you try to make it behave as a spreadsheet. You could
look up one-to-one relationships and try to put together a large flat
database that way, but that is a very difficult solution to implement
efficiently and effectively.