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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Подскажите с подчиненной формой
 
 автор: Гоблин   (14.08.2012 в 19:25)   личное сообщение
14 Кб.
 
 

Привет народ. Подскажите что я делаю не так.

Есть таблица1 связанная один-много с таблицами 2 и 3
Есть свободная форма1 в которой ленточная подформа2. Источник ее – таблица3
В этой подформе полясосписком ИзТаб1 и ИзТаб2. Причем надо сделать так, что при выборе в полесосписком ИзТаб1 информация в полесосписком изтаб2 была соотвтествующей выбранному в предыдущем поле.
В основной форме работает на раз. В подчиненной не хочет.
Полесосписком Из таб2 такой

SELECT Таблица2.Код, Таблица2.Поле2, Таблица2.ИзТаб1 FROM Таблица2 WHERE (((Таблица2.ИзТаб1)=Forms!Форма1![подчиненная форма Таблица3].form!ИзТаб1)) ORDER BY Таблица2.Поле2;

Обновляю методом попадания фокуса в это полесосписком, после того как сделаю выбор в полесосписком1.
И еще ругается при открытии формы. Наведите на мысль, что не так. Убрать условие из запроса нельзя.
Может как-то назначать источник строк полюсосписком? Но надо делать по текущей записи как-то, т.к. инфа в полесосписком1 будет в каждой строке разная.

PS совсем забыл об ограничениях до 50 кбт. Предыдущие сайт отбивал назад. Рар забыл...

  Ответить  
 
 автор: kot_k_k   (15.08.2012 в 09:34)   личное сообщение
 
 

переименуй поляСосписком - и будет сщазтье.

  Ответить  
 
 автор: Гоблин   (15.08.2012 в 18:39)   личное сообщение
 
 

Не понял. Во что переименовать и как это на что влияет?

  Ответить  
 
 автор: kot_k_k   (16.08.2012 в 08:56)   личное сообщение
15 Кб.
 
 

у тебя - поля со списком - на форме и поля - текстовое и числовое "Источнике формы" совпадают!!!
когда ты пытаешся сделать что-либо с полем ТЕКСТОВОЕ у которого объявлено RowSource - Акс выпадает в осадок - измени поля на форме (хоть _ добавь ) и запросы соответсвенно и будет ОК,

и повесь обработчик

Private Sub ИзТаб1__AfterUpdate()
Me.ИзТаб2_.RowSource = "SELECT Таблица2.Код, Таблица2.Поле2, Таблица2.ИзТаб1 FROM Таблица2 WHERE (((Таблица2.ИзТаб1)=Forms!Форма1![подчиненная форма Таблица3].form!ИзТаб1_)) ORDER BY Таблица2.Поле2"
Me.ИзТаб2_= Null
End Sub

а тот выкинь.

  Ответить  
 
 автор: Гоблин   (16.08.2012 в 23:38)   личное сообщение
 
 

Спасибо. Действительно работает. Только снова вижу, что это неприемлемо. Даже если на попадание фокуса в полесосписком2 задавать ему источник, надо еще что-то. Пропадает, не сохраняет. Наверно надо все иначе.

  Ответить  
 
 автор: snipe   (17.08.2012 в 06:00)   личное сообщение
 
 

Private Sub ИзТаб1__AfterUpdate()
if nz(Me.ИзТаб1,"")="" then
Me.ИзТаб2_.RowSource = "SELECT Таблица2.Код, Таблица2.Поле2, Таблица2.ИзТаб1 FROM Таблица2  ORDER BY Таблица2.Поле2"
else
 Me.ИзТаб2_.RowSource = "SELECT Таблица2.Код, Таблица2.Поле2, Таблица2.ИзТаб1 FROM Таблица2 WHERE (((Таблица2.ИзТаб1)=Forms!Форма1![подчиненная форма Таблица3].form!ИзТаб1_)) ORDER BY Таблица2.Поле2"
End if
 End Sub

Private Sub form_current()
call ИзТаб1__AfterUpdate()
end Sub

  Ответить  
 
 автор: kot_k_k   (17.08.2012 в 09:17)   личное сообщение
 
 

оставь в покое поле2, при изменении поля1 - полесосписком2 меняет свой RowSource и обнуляется, для того чтобы не было неправильностей, можно присовить первое значение из списко - но это не правильно.

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