Can I do the following, and use an @variable in an IN predicate?
DECLARE @Vendor varchar(1000), @VendorID varchar(1000)
SET @Vendor = 'Smith'
SET @VendorID = ''
IF @Vendor = 'Smith'
SET @VendorID = ' ''200711'', ''200794'', ''218204'', ''213601'',
''213602'', ''213610'', ''213603'', ''213604'', ''213609'', ''213605'',
''21360'', ''213607'', ''213608'',''198502'', ''198501'', ''198503'',
''218201'',''229601'', ''215401'' '
SELECT
d.strName As Department,
f.strName As Facility,
v.strName As Vendor,
vh.strHostVendorID As VendorID
FROM dbo.tblControlLog c
INNER JOIN dbo.tblControlLogPurchaseOrders po
ON c.guidControlLogID=po.guidControlLogID
INNER JOIN dbo.tblFacilities f
ON c.guidFacilityID=f.guidFacilityID
INNER JOIN dbo.tblDepartments d
ON c.guidDepartmentID = d.guidDepartmentID
INNER JOIN dbo.tblVendorHost vh
ON po.guidVendorHostID=vh.guidVendorHostID
INNER JOIN dbo.tblVendors v
ON po.guidVendorID=v.guidVendorID
WHERE
(@VendorID = 'All' OR vh.strHostVendorID IN(@VendorID))