фильтр для списка в вызываемой форме

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Putincev
Сообщения: 40
Зарегистрирован: 10 май 2007, 16:06

Добрый день!
У меня в БД на Accesse есть форма frmVybor_TowerSection(которая вызывается из другой формы frmVybor_Tower) со списком, данные которого формируются инструкцией SQL:
SELECT tblTowerSection.ID, tblTowerSection.Kod_Section, tblTowerSection.Name_Section, tblTower_Spec.N_Section, tblTower_Spec.ID_Tower
FROM tblTowerSection INNER JOIN tblTower_Spec ON tblTowerSection.ID = tblTower_Spec.ID_Section
WHERE (((tblTower_Spec.ID_Tower)=[Forms]![frmVybor_Tower]![ctlSpisok]))
ORDER BY tblTower_Spec.N_Section DESC;

После преобразования таблиц в формат SQL Server, а БД в проект Access у меня не работает фильтрация списка, и как ее сделать нигде не найду.
Может кто знает как это победить?
Заранее благодарю!
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Putincev.
Если я правильно понял у Вас не работает источник строк после конвертации БД из MS Access в MS SQL Server.
Во первых стоит проверить корректность преобразования выполнив запрос без условий отбора

Код: Выделить всё

SELECT tblTowerSection.ID, tblTowerSection.Kod_Section, tblTowerSection.Name_Section, tblTower_Spec.N_Section, tblTower_Spec.ID_Tower
FROM tblTowerSection INNER JOIN tblTower_Spec ON tblTowerSection.ID = tblTower_Spec.ID_Section
затем если в Вашей форме в качестве источника строк используется несохраненный запрос а строка SQL, создайте функцию возвращающую значение поля формы, например:

Код: Выделить всё

Function ctlSp() As Long
   ctlSp = nz([Forms]![frmVybor_Tower]![ctlSpisok], 0)
End Function
и в условии отбора будет работать подобная конструкция:

Код: Выделить всё

...WHERE tblTower_Spec.ID_Tower = ctlSp()...
Евгений
Ответить