Следует учитывать следующее:
- Если у вас есть имена полей с пробелом внутри, например
Supplier Name
, вам придется заключить их в квадратные скобки: [Supplier Name]
.
- Скобки
()
на самом деле не нужны в вашем случае. Вы можете опустить их.
- Вместо двух кавычек (
""
), чтобы добавить буквальную кавычку, вместо этого можно использовать одинарную кавычку ('
), что делает ее более понятной для чтения.
Type
- зарезервированное слово. Если возможно, не используйте его. Минимум можно заключить в квадратные скобки ([Type]
).
Если ваша строка SQL действительно разделена на несколько строк в VBA, то вам придется явно обрабатывать ее, используя подчеркивания (_
) и конкатенацию строк:
strTest = "This is a string" & _
" defined in several" & _
" lines of code in VBA."
В качестве альтернативы вы можете использовать это:
strTest = "This is a string"
strTest = strTest & " defined in several"
strTest = strTest & " lines of code in VBA."
Итак, наконец, ваш (однострочный) SQL, содержащий VBA, будет выглядеть так:
strSearch = "Select * From qryInfo Where [Supplier Name] Like '*" & strText & "*' Or [Type] Like '*" & strText & "*'"
Важно тоже:
Имейте в виду, что ваш текущий подход, использующий конкатенацию строк, не избегает внедрения SQL, что является реальной проблемой безопасности!
Посмотрите здесь, как лучше справиться с этим (например, с помощью запросов параметров в VBA): Как использовать параметры в VBA в различных контекстах в Microsoft Access?