It would be great to see your example that will allow me to enter data in Excel
I don't have an example of this, I have an example of inputting directly into Access as you originally described - however having now seen your spreadsheet, I think it may not be appropriate - you have blank columns and 'redundant' data in the previous month and variance columns which makes for a very wide form. given the max width of a form is 560mm and you have circa 60 columns, each column would only be about 10mm wide which is not enough for your purposes.
With regards importing from excel into access there are plenty of examples out there I don't have one per se- probably the easiest is to create a linked table to your excel worksheet and create some import queries - either one for each product or one built in a vba loop to step through the columns.
either way, your column heading is in row 1 and your query would need to ignore row 2 because it is not a value for importing.
Your query would be something like to import Product1
Code:
INSERT INTO tblLicences (ProductFK, LocationFK, Quantity, LicenseDate)
SELECT (SELECT TOP 1 ProductPK FROM tblProducts WHERE ProductName='Product1'), (SELECT TOP 1 LocationPK FROM tblLocations WHERE LocationName=exlTbl.Site), Product1, Date()
FROM exlTbl
WHERE isnumeric(Product1)
Note, you will need to modify your spreadsheet to put 'Site' in row 1 and I can't see a date on the spreadsheet so I've just used the function for today - Date(), you may want to input this as a parameter or reference a value on a form.
Your locations table could use the #1,2,3 etc as the locationPK if this is what it means, then you could just refer to this column, but again you would need to put a column header in the top row.
Finally, before running this query, you will need to ensure that you have fully populated tblProducts and tblLocations - you could use a query similar to the above for locations but would need to manually input the products