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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Access 2002 список
 
 автор: Nat   (26.03.2009 в 14:40)   личное сообщение
 
 

Помогите, пож-сто, вернутся из одной формы в дрпугую форму в поле список на нужную запись. Источником списка является запрос из 10 полей.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 15:31)   личное сообщение
 
 


Помогите, пож-сто, вернутся из одной формы в дрпугую форму в поле список на нужную запись



Вас как туда за ручку отвезти?
Что именно вызывает проблемы?

DoCmd.OpenForm Имя формы - открывает фому с указанным именем.

Forms!ИмяФормы.ИмяСписка.Value = чему тот там. - кажется как то так.

  Ответить  
 
 автор: Nat   (26.03.2009 в 15:41)   личное сообщение
 
 

Спасибо! Особенно за вежливый ответ! Но он проблемы не решает, т.к. список состоит из 10 полей, а Forms!ИмяФормы.ИмяСписка.Value = чему тот там позволяет присвоить значение только одной колонке, тогда как мне надо сразу 4-м, как минимум.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 15:47)   личное сообщение
 
 

Forms!ИмяФормы.ИмяСписка.Column(0).Value
Forms!ИмяФормы.ИмяСписка.Column(1).Value
Forms!ИмяФормы.ИмяСписка.Column(2).Value
Forms!ИмяФормы.ИмяСписка.Column(3).Value
...........................................................................

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 15:51)   личное сообщение
 
 

PS А зачем в список выводить 10 полей? Может проще использовать подчиненную форму. По ней и рекордсетом пробежаться проще. Да и варианты оформления различные - табличная, ленточная...

  Ответить  
 
 автор: Nat   (26.03.2009 в 16:11)   личное сообщение
 
 

Это уже испробовано. Проблема остается. А список из стольких полей для того, чтобы по 10 полям выбрать тот или иной кусок таблицы. Это ключевые реквизиты. А в запросе установлена уникальность (вместо 100 записей таблицы с такими значениями в списке выводится только одна). Выбрав запись из списка открывается новая форма. В ней производятся действия с этими 100 записями. Затем возврат в начальную форму на этот список. Маркер устанавливается не туда. Хочу так откуда ушли туда и пришли.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 16:30)   личное сообщение
 
 

Я перестал понимать, что вы выбираете. Если в списке десять полей, (выглядит он как таблица с 10 колонками) - то при выборе записей в списке в нем "маркером" выделяется строка, содержащая все десять полей. "Отметить маркером" только третий столбец списка нельзя.

Пришлите принтскрин вашего списка, чтоб было понятнее.

  Ответить  
 
 автор: Lukas   (26.03.2009 в 16:31)   личное сообщение
 
 


Маркер устанавливается не туда


Это о чем?

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 16:33)   личное сообщение
64 Кб.
 
 

У мну складывается впечатление, что речь все таки идет о подчиненной форме. Ща глянем принтскрин - будет ясно


У мну на рисунке список с несколькими полями . В нем нельзя выделить только одно поле. Можно выделить строку целиком.

  Ответить  
 
 автор: Nat   (26.03.2009 в 17:18)   личное сообщение
48 Кб.
 
 

Прошу прощения, за то, что толком не могу объяснить свою проблему.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 17:46)   личное сообщение
 
 

Теперь понял..
Землякам помогать святое.

В вашем списке должен быть первый столбец Column(0) - уникальным. Тогда легко будет передать его значение в глобальную переменную при переходе на другую форму и так же легко вернуть на нужную запись в списке.
В вашем случае первой колонкой списка является MOL. А он не уникален, потому и работает не так как вы хотите.

  Ответить  
 
 автор: Nat   (26.03.2009 в 18:01)   личное сообщение
 
 

Про уникальность понятно. Но тут составной ключ. Как быть. Вводить новое поле в запрос? Спасибо за помощь. В принципе направление понятно. Хотя не хочу усложнять запрос.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 18:19)   личное сообщение
 
 

me.MyList.ListIndex - запоминает номер записи ( например пятая запись )

Me.MyList.Selected(5) = True - ставит вас на пятую запись

При клике на список присваиваете переменной значение
а=me.MyList.ListIndex

А при возврате в форму пишите

Me.MyList.Selected(a) = True

и фсе

  Ответить  
 
 автор: Lukas   (26.03.2009 в 18:33)   личное сообщение
 
 

Я вот никак не могу понять.
Каким образом список может терять свое значение, если кликом по нему (или по соседней кнопке) открывается другая форма?

  Ответить  
 
 автор: Nat   (26.03.2009 в 18:40)   личное сообщение
 
 

Теряет потому, что в другой форме работа с этой же таблицей, из которой и сделан список. Например, вводится новая запись в таблицу. Возвращаюсь в список , делаю requery и все. Маркер улетает . Нет уникальности. Но благодаря совету (см.выше) я это разрулю.

  Ответить  
 
 автор: Nat   (26.03.2009 в 18:36)   личное сообщение
 
 

Класс! Спасибо! Вопрос закрыт!

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