синхронизация 2-ух списков

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

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

Ответить
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Добрый день, нужна ваша помощь в ACCESS

столкнулся с проблемой. Есть поле со списком, которое подтягивает данные из большой таблицы. И выводит сразу 2 поля значений.
к примеру:

Человек [Имя | Фамилия] - тип первого поля со списком

и

Год рождения [год] - тип второго поля со списком


имя и фамилия находятся одной таблице, там же есть год рождения, но его выводить в поле "Человек" не надо.

В поле год рождения, это отдельная таблица, откуда подсасывает данные поле со списком "год рождения"


СУТЬ ВОПРОСА:
Как сделать так. что бы при выборе года, то был выбор имен только людей этого года. Тоесть список сокращался. Заранее спасибо !
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте kuznetsovSergey.
для получения реальной помощи выложите архив с наработкой - файлом БД.
Объяснения "на пальцах" не эффективны. :(
Евгений.
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

в этом то и дело ... в базе данные подтягиваются из удаленного SQL server-а, поэтому работать у вас это не будет ...

проводил тесты, столкнулся с такой проблемой.

одно поле со списком работает безупречно, потому что оно тянется из обычной таблички в этой же базе данных.
Второе поле со списком из SQL сервера тоже тянет всё отлично. Заходя в запрос, для подкачки данных из SQL server добавляю отбор по условию, года рождения. То список сразу становится пустым. НО !!! если ввести в поле со списком год, и не выделять другое поле со списком, а просто в ручную запустить запрос, то он работает, и выполняет всё правильно.

Грубо говоря, если заполнить год, и запустить запрос в ручную, то он работает. Если ввести год, и выделить второе поле со списком, то он почему то обнуляет данные.

Подскажите пожалуйста, что может быть ?








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

Здравствуйте kuznetsovSergey.
1. "Как сделать так. что бы при выборе года..." - обновление записей.
Возможно незавершенная конструкция, т.е. в условии отбора источника строк (запроса) поля со списком задано изменяющееся условие, а после после изменения этого условия (в Вашем случае - обновление поля со списком 2) набор записей не обновляется. При обращении непосредственно к запросу "запустить запрос в ручную..." он обращается к текущим данным условия отбора и обновляется. Добавьте на событие После обновления поля со списком 2 подобный код:

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

Private Sub ПолеСоСписком2_AfterUpdate()
    ПолеСоСписком1.Requery
End Sub
и проблема уйдет.
2. "из удаленного SQL server-а..."
данные с SQL сервера "одним кликом" перекладываются в БД MS Access
и если существует подключение к БД, а оно у Вас есть, "работать у вас это не будет..." - не оправдание. :(
Евгений.
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

ну собственно вот сам пример, при выборе первого списка, запрос обрабатывается. Но не подтягивается вторым списком , вот пример базы. Жду помощи ! =)

Скачать файл TEST.rar
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте kuznetsovSergey.
не выкладывайте образцы на сторонних серверах, их можно выложить непосредствыенно на странице упаковав в ZIP архив.
Евгений.
Вложения
TEST_.zip
(13.63 КБ) 35 скачиваний
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

АААА МЕГА КРУТО !!! СПАСИБО ОООООООООГРОМНОЕ !!!!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
попробовал сделать третий список на той же основе, не получается. Не пойму систему, как это осуществить. И что бы каждое содержимое из трех списков зависило от выбранного в двух других.

ЗАРАНЕЕ СПАСИБО !
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

помогите пожалуйста ))) как сделать такую же фишку, только с 3 и более полей со списком ? оО
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Сергей. (надеюсь правильно понял по нику kuznetsovSergey)
"такую же фишку" при использовании "... и более" контролов использовать не стоит.
Сложную SQL конструкцию источников данных учитывающую логику отображения информации, по нескольким условиям других контролов (полей со списком), в MS Access лучше собирать в VBA коде, считывая только текстовые значения контролов.
Не помещая имена имена контролов в SQL конструкцию источника строк (...[Forms]![Форма1]![ПолеСоСписком0]...) упрощаем задачу для JET ядра, на которое ложится задача выполнения этих "конвертаций".
Евгений.
Вложения
TEST_2.zip
(24.57 КБ) 38 скачиваний
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Ваш пример идеален, то что нужно. Но я просто не понимаю принцип как это работает , и меня это жутко расстраивает.
Спасибо за помощь
Ответить