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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Работа со списком
 
 автор: Sanek   (15.09.2009 в 15:31)   личное сообщение
 
 

Подскажите как лучше сделать.

Есть поле со списком, которое содержит значения. Его я заполняю с помощью кода.
И есть список, в который значения добавляются из поля со списком.
Источником данных этих объектов является "Список значений".

Хочу сделать так, что бы значения в поле со списком были только те, которых еще нет в списке.
Может есть какая нибудь функция, которой подать на вход параметр и она скажет есть или нет такое значение в списке.

  Ответить  
 
 автор: FORMAT   (15.09.2009 в 15:48)   личное сообщение
 
 

В вашем случае можно сделать для списка и поля со списком разные источники данных, с помощью конструкции NOT IN SELECT...

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

Это если бы источником были бы запросы или таблицы, а у меня набор записей.
Поэтому этот вариант не подходит. Или я тогда Вас не понял.

  Ответить  
 
 автор: kot_k_k   (15.09.2009 в 16:16)   личное сообщение
 
 

Что значит


а у меня набор записей.


по поводу внесения отстутствующего в списке есть функция LEFT JOIN.
вот тут были мысли по похожему поводу
http://hiprog.com/forum/read.php?id_forum=1&id_theme=5687&page=1

п.с. вопрос если можно по яснее изложите илил пример какой

  Ответить  
 
 автор: Sanek   (15.09.2009 в 16:24)   личное сообщение
 
 

Установлен тип источника данных "Список значений". Т.е. в источнике данных указывается так "1; Слово 1; 2; Слово 2".

Поле со списком заполняется по следующему алгоритму:

Me.Поле1.RowSource = "-1; Значение 1"
Set rec = CurrentDb.OpenRecordset("SELECT ID, Name FROM Table;")
Do Until rec.EOF
Me.Поле1.RowSource = Me.Поле1.RowSource & ";" & rec![ID] & ";" & rec![Name]
rec.MoveNext
Loop
rec.Close
После чего из других таблиц добавляются значения и т.д. и т.д. ID не совпадают.
Вот какое можно написать условие, что если этот ID уже есть в списке, то не добавлять его в поле со списком?

  Ответить  
 
 автор: kot_k_k   (15.09.2009 в 16:49)   личное сообщение
 
 

но что мешает проверять наличие ID перед добавлением?
Me.Поле1.RowSource - строка, так
значит можно Instr(Me.Поле1.RowSource,rec![ID] )
если есть вариант совпадения rec![ID] с rec![Name] то мона делать вторую строчку из одних rec![ID] и проверять ее

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

Как вы заполняете ComboBox и добавляете в ListBox? В А2002 у этих объектов появились методы AddItem и RemoveItem. Последний можно использовать для удаления элемента списка.

  Ответить  
 
 автор: Sanek   (15.09.2009 в 16:50)   личное сообщение
 
 

Такой строчкой добавляю в ComboBox значение:
Me.Поле1.RowSource = "-1; Значение 1"

  Ответить  
 
 автор: Анатолий (Киев)   (15.09.2009 в 18:15)   личное сообщение
 
 


Такой строчкой добавляю в ComboBox значение:
Me.Поле1.RowSource = "-1; Значение 1"


А следующие?
У вас какой Акс? Есть методы AddItem и RemoveItem? Если есть, то:
Добавить єлементы в источник ПС:
Me.Поле1.AddItem "-1; Значение 1"
Me.Поле1.AddItem "0; Значение 2"
Me.Поле1.AddItem "1; Значение 3"

Удалить текущий элемент из ПС после добавления его в другой список:
Me.Поле1.RemoveItem Me.Поле1.ListIndex

  Ответить  
 
 автор: Sanek   (16.09.2009 в 11:39)   личное сообщение
 
 

Спасибо за помощь.
Выкрутился с помощью временной таблицы и запроса not in select...

Только не смейтесь:) используется MS Access 97

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