Am I right assuming that:
for every Binomial is no more than 1 entry in any of Excel tables;
when 2 tables have same parameter (except taxonomy ones) in different tables, then the sets of species in those tables are different (Binomials aren't repeated).
When yes, then:
1. Link all 4 Excel tables into your Access database;
2. Create an Access table with structure like tblBinomial: Binomial, Genus, Family, Order
2. Create an Access table with structure like
tblBinomialInfo: Binomial, Genus, Family, Order, FemaleMat, MaleMat, DietBreac, Gestation, Habitat, HomeRange, Weaning, LitterSize, LittersPe, InterLitter, MaxLonge, Population, 23Minus1Sex, ActivityPa, BodyMass, Reference;
3. Create e.g. OnOpen event for your database, which runs 2 sets of queries to clear old data from tblBinomial and tblBinomialInfo, and after that to run queries ti insert data from linked Excel tables at 1s to tblBinomial and then to tblBinomialInfo.
Queries on fly
Code:
INSERT INTO tblBinomial
SELECT DISTINCT Binomial, Genus, Family, Order FROM LinkedTable1
UNION SELECT Binomial, Genus, Family, Null AS [Order] FROM LinkedTable2
UNION SELECT Binomial, Null AS [Genus], Family, Null AS [Order] FROM LinkedTable3
SELECT Binomial, Genus, Family, Order FROM LinkedTable4
Code:
INSERT INTO tblBinomialInfo
SELECT
bi.Binomial, bi.Genus, bi.Family, bi.Order,
lt1.FemaleMat, lt1.MaleMat, lt1.DietBreac,
Nz(lt1.Gestation, lt2.Gestation) AS [Gestation], lt2.Habitat, lt2.HomeRange,
Nz(lt1.Weaning, lt2.Weaning) AS [Weaning], Nz(lt1.LitterSize, lt2.LitterSize) AS [LitterSize], Nz(lt1.LittersPe, lt2.LittersPe) AS [LittersPe],, lt1.InterLitter,
Nz(lt1.MaxLonge, lt2.MaxLonge) AS [MaxLonge], lt2.Population, lt2.23Minus1Sex, lt3.ActivityPa,
Nz(lt1.BodyMass,Nz(lt2.BodyMass, Nz(lt3.BodyMass,lt4.BodyMass))) AS [BodyMass], Nz(lt1.Reference,Nz(lt2.Reference, Nz(lt3.Reference,lt4.Reference))) AS [Reference]
FROM tblBinomial bi
LEFT JOIN LinkedTable1 lt1 ON lt1.Binomial = bi.Binomial
LEFT JOIN LinkedTable2 lt2 ON lt2.Binomial = bi.Binomial
LEFT JOIN LinkedTable3 lt3 ON lt3.Binomial = bi.Binomial
LEFT JOIN LinkedTable4 lt4 ON lt4.Binomial = bi.Binomial
When this is once-time action, then simply skip event creating, run those queries directly, and when all went OK, delete queries, linked tables, (and tblBinomial, when you don't have a need for it anymore).
Btw, access may be not cooperate with you having field name Order in database and even worse, in query.