Страница: 1 |
Вопрос: Отобразить все записи в подч. форме Access | Добавлено: 15.08.06 13:13 |
Автор вопроса: ![]() |
На форме есть поле со списком, выбираю в нем отдел [DepId] и в подчиненной форме отображаются данные по этому отделу. Вопрос: Как, используя значения поля "все", в подчиненной показать все записи таблицы.
Private Sub ПолеСоСписком22_AfterUpdate() ' Поиск записи, соответствующей этому элементу управления. Dim rs As Object Set rs = Me.Recordset.Clone If Me![ПолеСоСписком22].Value <> "Все" Then rs.FindFirst "[DepID] = " & Str(Me![ПолеСоСписком22]) Me.Bookmark = rs.Bookmark End Sub |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 287314254 Вопросов: 14 Ответов: 72 |
Профиль | Цитата | #1 | Добавлено: 15.08.06 16:57 |
Задай еще одно условие:
If Me![ПолеСоСписком22].Value="Все" Then ...
'далее выбираешь данные через SELECT End If Если я конечно тебя правильно понял... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #2 | Добавлено: 16.08.06 12:40 |
Не получается, “все” – это значение поля списка в таблице, которое нигде не выбирается, в итоге в подчиненной форме пусто, связь идет по значениям поля DepId. Работает так, при выборе отдела ГИТ в поле со списком в подч. форме – все записи по отделу ГИТ. Хотелось бы увидеть при «Все» - Записи по всем отделам
Private Sub ПолеСоСписком22_AfterUpdate() ' Поиск записи, соответствующей этому элементу управления. ![]() Set rs = Me.Recordset.Clone If Me![ПолеСоСписком22].Value <> "Все" Then rs.FindFirst "[DepID] = " & Str(Me![ПолеСоСписком22]) Me.Bookmark = rs.Bookmark If Me![ПолеСоСписком22].Value = "Все" Then …………………………………???? End Sub |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 287314254 Вопросов: 14 Ответов: 72 |
Профиль | Цитата | #3 | Добавлено: 16.08.06 15:50 |
Если у тебя есть, к примеру, таблица "отделы" с полями код_отдела, наименование_отдела и таблица "сотрудники" с полями код_отдела, фамилия, имя, отчество тогда выборку можно построить следующим образом:
Для начала заполняешь ComboBox программно. Do While adoRS.EOF = False
Combo1.AddItem adoRS.Fields("наименование_отдела" ![]() adoRS.MoveNext Loop Combo1.AddItem "все" Затем перед выборкой данных в подчиненной форме находишь соответствующую запись в таблице "отделы" adoRS.Find "наименование_отдела='" & Combo1.Text & "'", , adSearchForward
Таким образом код отдела будет равен adoRS.Fields("код_отдела" ![]() ' для конкретного отдела
If Combo1.Text <> "все" Then sql="SELECT фамилия, имя, отчество FROM сотрудники WHERE код_отдела=" & adoRS.Fields("код_отдела" ![]() End If ' для всех отделов If Combo1.Text = "все" Then sql=SELECT фамилия, имя, отчество FROM сотрудники" Вот и всё. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #4 | Добавлено: 17.08.06 12:02 |
Спасибо |
Страница: 1 |
|