When I run complex queries, I like to format them more like this:
strSQL="SELECT * FROM [Fencing$] WHERE 12mmInfillBars=" & frmSettings.opt12mmInfill.Value & _" AND 16mmInfillBars=" & frmSettings.opt16mmInfill.Value & " AND 1mHeight=" & _
frmSettings.opt1mHigh.Value & " AND 1-2mHeight=" & frmSettings.opt12mHigh.Value & _
" AND Galvanised=" & frmSettings.optGalvanised.Value
FencingRecordSet.Open strSQL, ExcelSpreadsheetADODB, adOpenKeyset, adLockOptimistic
then I can evaluate strSQL on it's own for problems. So many times theres a quirky error in concatenation, or quotes as you mentioned. Could you post the actual string(strSQL) for us to look at?