powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / реакция ServerFilter если нет записи
13 сообщений из 13, страница 1 из 1
реакция ServerFilter если нет записи
    #32837210
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть фильтр:
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'"

Если в базе данных есть записи по отбираемому критерию, то фильтр срабатывает и данные на форме соответсвенно отбираются. А если записи нет, то все контролы на форме исчезают. Как сделать так, чтобы они не исчезали и фильтр останавливался в этом случае?
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32837551
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно в Where добавляют OR
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32839487
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тогда в критерий OR поставить? А если поставить условие If, типа если результат комадны ServerFilter ничего не выдаёт, то комадна отменяется и появяется MsgBox"No records found". Как написать такоё условие? Просто, чтобы вернуться обратно в форму, мне приходится её закрыть и заново открыть.
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32840457
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
команда ServerFilter - это как раз то, что "Ваш запрос" + " WHERE " + ServerFilter.

Вопрос: Что у Вас за форма? У меня, к примеру, ленточная - там ничего не исчезает.

Шугард: а действительно, что поставить в OR?
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32840606
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
+"OR not exists(select * FROM "+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Вернет либо фильтрованные, либо все.

Ежели Me.RecordSource=хранимая процедура, то Me.RecordSource заменить на прямую ссылку на таблицу/представление.
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32841177
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenzкоманда ServerFilter - это как раз то, что "Ваш запрос" + " WHERE " + ServerFilter.

Вопрос: Что у Вас за форма? У меня, к примеру, ленточная - там ничего не исчезает.

Шугард: а действительно, что поставить в OR?

У меня Single Form. Ленточная- это наверное Continious Form? Она не устанавливается, так как у меня есть СубФормы и АктивИКС объекты.
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32841402
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks2
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
+"OR not exists(select * FROM "+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Вернет либо фильтрованные, либо все.

Ежели Me.RecordSource=хранимая процедура, то Me.RecordSource заменить на прямую ссылку на таблицу/представление.

Кстати, этот код вроде для мдб. Попробовал переделать его для адп следующим образом
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
            & "OR not exists(select * FROM '" & Me.RecordSource & "' WHERE Descr='" & Me![Combo_Sort_Selected] & "')"


Попробовал, но теперь вообще зависает. И вообще, поддерживает ли SQL Server команду Not exists?
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32841900
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторподдерживает ли SQL Server команду Not exists?

поддерживает...

и пример Вам был дан в полном соответствии с синтаксисом Transact SQL

Единственно: что у Вас находится в Me.RecordSource ?
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32842049
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в RecordSource формы стоит команда SQL:
Код: plaintext
1.
SELECT Assets.*, Models.Descrip AS Descr, Companies.CompName AS Manu, Employees.FirstName AS FirstName, Employees.SecondName AS SecondName FROM Companies RIGHT OUTER JOIN Models ON Companies.CompanyID = Models.Manu RIGHT OUTER JOIN Assets ON Models.ModNum = Assets.Model LEFT OUTER JOIN Employees ON Assets.UserID = Employees.EmployeeID
Попробовал вашу команду и вот что мне выдаёт:

Run time error'-2147352567(8020009)' The expression you entered has a field, control, or property that Mircosoft Access can't find

Делаю дебаг и там мне выдаёт:

Incorrect syntax near the keyword 'Select'
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32842961
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
+" OR not exists("+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Спасет отца русской демократии. А лучше Me.RecordSource преобразуй в серверный вид.
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32845892
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks2
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
+" OR not exists("+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Спасет отца русской демократии. А лучше Me.RecordSource преобразуй в серверный вид.

Не срабатывает. Пробую первое условие OR и команда работает, при условии, что есть соответсвующая строка в базе. Подсоединяю второе условие
Код: plaintext
1.
+" OR not exists("+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Выбираю в Комбобоксе параметр (например Firewire) и выходит ошибка. При дебаге говорит, что

Inavalid column name "Firewire"

Да, кстати, что за вид такой серверный в Me.Recordsource?
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32845963
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, совсем забыл, может быть проблема в командах следующих за Фильтром? Потом следуют:

Код: plaintext
1.
2.
Me.ServerFilterByForm = True
Me.Requery
...
Рейтинг: 0 / 0
реакция ServerFilter если нет записи
    #32846394
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
magoga[quot aleks2]
Код: plaintext
1.
Me.ServerFilter = "Descr='" & Me![Combo_Sort_Selected] & "'" _
+" OR not exists("+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Спасет отца русской демократии. А лучше Me.RecordSource преобразуй в серверный вид.

Не срабатывает. Пробую первое условие OR и команда работает, при условии, что есть соответсвующая строка в базе. Подсоединяю второе условие
Код: plaintext
1.
+" OR not exists("+Me.RecordSource+" WHERE Descr="+Me![Combo_Sort_Selected]+")"

Выбираю в Комбобоксе параметр (например Firewire) и выходит ошибка. При дебаге говорит, что

Inavalid column name "Firewire"

Нельзя же так беспомощно...
Код: plaintext
1.
+" OR not exists("+Me.RecordSource+" WHERE Descr="""+Me![Combo_Sort_Selected]+""")"

Я то откуда должен знать тип поля Descr?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / реакция ServerFilter если нет записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]