Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заполнение подформы, 2003 access
 
 автор: dobus   (13.10.2009 в 14:26)   личное сообщение
 
 

Привет :)
Подскажите пожалуста, например имеются 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.10.2009 в 14:50)   личное сообщение
 
 

Как у вас связаны таблицы (неужели по ФИО жильца)?
Как связаны форма с субформой?
В каком разделе формы находится список, и что у него в св-ве "Данные"?

  Ответить  
 
 автор: Dobus   (13.10.2009 в 16:00)   личное сообщение
 
 


Как у вас связаны таблицы (неужели по ФИО жильца)?


угу :( тока сейчас понял что в ФИО могут быть сопадения, подскажите как лучше связать?


Как связаны форма с субформой?


затрудняюсь ответить :) просто тупо перетащил форму с помещениями на форму жильцов


В каком разделе формы находится список, и что у него в св-ве "Данные"?


Список находится в области данных, в св-ве Данные ничего, не додумался как отсортировать ФИО по алфавиту , поэтому сделал его на основе запроса к таблице Жильцов отсортировав по алфавиту там ;)

  Ответить  
 
 автор: kot_k_k   (13.10.2009 в 16:33)   личное сообщение
13 Кб.
 
 


str1SQL = "SELECT * FROM Помещения WHERE Жилец = " & lstФИО.Column(1)


может правильно как в первом случае
str1SQL = "SELECT * FROM Помещения WHERE Жилец = " & lstФИО.Column(0)
ведь если в таблице Помещения ПолеСоСписком "Жилец" то он равен КодЖилец (так логично соединиять).
И в конце возможно нужно Requery (обновить) формы.


Вот вложил, на скору руку. Двойной клик на ФИО жильца выводит инфу по нему.


Как связаны форма с субформой?
затрудняюсь ответить :) просто тупо перетащил форму с помещениями на форму жильцов


Формы связаны:
Объект-источник: Помещения
Подчиненные поля: Жилец
Основные поля: Код
все это в Свайствах подчиненной формы нужно смотреть.

  Ответить  
 
 автор: Анатолий (Киев)   (13.10.2009 в 16:43)   личное сообщение
 
 

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) должен возвращать КодЖильца (число).

Удачи!
Вам бы литературу почитать... В справку почаще заглядывайте, в образцовуе БД "Борей" и "Решения".

  Ответить  
 
 автор: Dobus   (13.10.2009 в 16:54)   личное сообщение
 
 

Спасибо, поменял связив таблицах все нормально рабоатет ;)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList