For a more flexible (and relational) solution you could try this:
Put your data in 3 tables, as follows:
Musician:
Fields: Id, Name
Values: 1, Joe; 2, Doug
Instrument:
Fields: Id, Instrument
Values: a, Drums; b, Sax; c, Tenor
Skill:
Fields: MusicianId, InstrumentId
Values: 1, a; 1, b; 1, c; 2, a; 2, b
To find all Musicians with skill in at least a defined number of Instruments, use the following SQL:
SELECT Musician.Name
FROM (Musician
INNER JOIN Skill ON Musician.Id = Skill.MusicianId)
INNER JOIN Instrument ON Skill.InstrumentId = Instrument.Id
GROUP BY Musician.Name
HAVING (((Count(Musician.Name))>=[Required]));
To find Musicians with skill in all Instruments, enter the value (number of lines in the Instrument table) as the [Required] parameter.
To find Musicians with skill in up to 3 (or whatever) specific Instruments, use the following SQL:
SELECT Musician.Name
FROM (Musician
INNER JOIN Skill ON Musician.Id = Skill.MusicianId)
INNER JOIN Instrument ON Skill.InstrumentId = Instrument.Id
WHERE (((Instrument.Instrument)=[Instrument 1]))
OR (((Instrument.Instrument)=[Instrument 2]))
OR (((Instrument.Instrument)=[Instrument 3]))
GROUP BY Musician.Name
HAVING (((Count(Musician.Name))>=[Required]))
OR (((Count(Musician.Name))>=[Required]))
OR (((Count(Musician.Name))>=[Required]));
Note that this will allow you to find, for example, all Musicians who have skill in any 1, any 2, or all 3 of a list of 3 specific Instruments.
This is endless fun, but now I must go and do some real work.
Cheers,
John