Tente isso em vez disso:
WHERE 1 = 1
AND (@what IS NULL OR [companies_SimpleList].[Description] Like @What )
AND (@keywords IS NULL OR companies_SimpleList.Keywords Like @Keywords)
AND (@where IS NULL OR companies_SimpleList.FullAdress Like @Where)
...
Se algum dos parâmetros
@what
, @where
é enviado para o procedimento armazenado com NULL
valor então a condição será ignorada. Você pode usar 0 em vez de null como um valor de teste, então será algo como @what = 0 OR ...