|
|
|
| Привет :)
Подскажите пожалуста, например имеются 2 таблицы, первая с информацией о жильцах, вторая о помещениях которые они занимают. Создаем форму, на основе таблицы о жильцах...на ней делаем Listbox и заполняем его ФИО жильцов, добавляем на эту форму подформу помещений. Как сделать чтобы при двойном клике на ФИО жильца в списке по ней выводилась информация как в основной форме, так и в подформе?
Пробывал нечто подобное ниже, не получилось
Private Sub lstФИО_DblClick(Cancel As Integer)
Dim strSQL As String
Dim str1SQL As String
strSQL = "SELECT * FROM Жильцы WHERE КодЖильца= " & lstФИО.Column(0)
Forms!Жильцы.RecordSource = strSQL
str1SQL = "SELECT * FROM Помещения WHERE Жилец = " & lstФИО.Column(1)
Forms!Жильцы.Помещения.Form.RecordSource = str1SQL
End Sub | |
|
| |
|
|
|
| Как у вас связаны таблицы (неужели по ФИО жильца)?
Как связаны форма с субформой?
В каком разделе формы находится список, и что у него в св-ве "Данные"? | |
|
| |
|
|
|
|
Как у вас связаны таблицы (неужели по ФИО жильца)?
|
угу :( тока сейчас понял что в ФИО могут быть сопадения, подскажите как лучше связать?
Как связаны форма с субформой?
|
затрудняюсь ответить :) просто тупо перетащил форму с помещениями на форму жильцов
В каком разделе формы находится список, и что у него в св-ве "Данные"?
|
Список находится в области данных, в св-ве Данные ничего, не додумался как отсортировать ФИО по алфавиту , поэтому сделал его на основе запроса к таблице Жильцов отсортировав по алфавиту там ;) | |
|
| |
|
13 Кб. |
|
|
str1SQL = "SELECT * FROM Помещения WHERE Жилец = " & lstФИО.Column(1)
|
может правильно как в первом случае
str1SQL = "SELECT * FROM Помещения WHERE Жилец = " & lstФИО.Column(0)
ведь если в таблице Помещения ПолеСоСписком "Жилец" то он равен КодЖилец (так логично соединиять).
И в конце возможно нужно Requery (обновить) формы.
Вот вложил, на скору руку. Двойной клик на ФИО жильца выводит инфу по нему.
Как связаны форма с субформой?
затрудняюсь ответить :) просто тупо перетащил форму с помещениями на форму жильцов
|
Формы связаны:
Объект-источник: Помещения
Подчиненные поля: Жилец
Основные поля: Код
все это в Свайствах подчиненной формы нужно смотреть. | |
|
| |
|
|
|
| 1. У вас есть "КодЖильца" в "Жильцы". Вероятно это ключевое поле-счетчик. Добавьтете в таблицу "Помещения" поле "КодЖильца" типа "Длинное целое", с неуникальным индексом.
Забейте это поле значениями. В схеме данных создайте связь между этими полями.
2. В форме, в св-вах элемента-контейнера субформы "Основные поля" и "Подчиненные поля" укажите КодЖильца. После этого субформа будет показавать только записи, связанные с текущей записью в форме, без дополнительных усилий.
3. Вместо "Список" лучше использовать "Поле со списком", расположить его в разделе "заголовок формы" и обрабатывать его событие AfterUpdate.
Можно и так:
strSQL = "SELECT * FROM Жильцы WHERE КодЖильца= " & Me!lstФИО.Column(0)
Me.RecordSource = strSQL
Но если в форме изначально присутствуют все записи с жильцами, то лучше найти запись и перейти на нее:
Me.Recordset.FindFirst "[КодЖильца]= " & Me!lstФИО.Column(0)
В любом случае Me!lstФИО.Column(0) должен возвращать КодЖильца (число).
Удачи!
Вам бы литературу почитать... В справку почаще заглядывайте, в образцовуе БД "Борей" и "Решения". | |
|
| |
|
|
|
| Спасибо, поменял связив таблицах все нормально рабоатет ;) | |
|
| |