DoCmd.OpenForm "Поиск в базе данных", acFormDS,, srcLastName & "AND" & srcFirstName
Это лишь небольшой пример предложения where - есть еще много терминов.
Во-первых, есть набор типов If, Then, которые устанавливают переменные srcLastName и srcFirstName в какое-то значение. Это не проблема и работает просто отлично.
Проблема в том, что они возвращают все значения (например, если вы хотите выполнить поиск только по одному, ни по одному из них (возврат полного списка базы данных))
До сих пор я согласился (в разделе если тогда):
srcLastName = "[Lastname] =" & Chr (34) & cboLastName & Chr (34) - для поиска чего-либо и
srcLastName = "[Lastname] <>" & Chr (34) & "Nuthin" & Chr (34) - чтобы вернуть все (не равносильно абсурдному и неправильно введенному термину базы данных.)
Проблема в том, что нулевые данные также не возвращаются. Если у меня пустое имя, оно не будет отображаться ни в одном из периодов поиска.
есть ли термин, который я могу установить [lastname] и [firstname] равными, которые будут возвращать ВСЕ (ноль, открытый, данные, числа, странные вещи и т. Д.) В поиске
форма SQL "дай мне все, что она получила Скотти", если хотите.
реальная проблема здесь заключается в вводе данных - если бы я мог просто знать, что люди будут вводить все 100% времени, этот код работал бы. но не забудьте ввести возраст людей или что-то еще, и эта запись не будет возвращена.
Пока что единственное другое решение, которое я нашел, - это поставить счетчик в каждое утверждение if then. Количество будет увеличиваться на единицу для каждой вещи, которую ищет. Тогда, если счет = 1, тогда я могу искать что-то вроде
DoCmd.OpenForm "Поиск в базе данных", acFormDS,, srcLastName
или
DoCmd.OpenForm "Поиск в базе данных", acFormDS,, srcFirstName
затем вернитесь обратно к
DoCmd.OpenForm "Поиск в базе данных", acFormDS,, srcLastName & "AND" & srcFirstName
когда количество равно 2 или больше
неприятно то, что он работает только для одного (если только я не хотел создать список из двух комбинированных, 3 комбинированных, 4 комбинированных, но этого не происходит)