|
|
|
| Подскажите как лучше сделать.
Есть поле со списком, которое содержит значения. Его я заполняю с помощью кода.
И есть список, в который значения добавляются из поля со списком.
Источником данных этих объектов является "Список значений".
Хочу сделать так, что бы значения в поле со списком были только те, которых еще нет в списке.
Может есть какая нибудь функция, которой подать на вход параметр и она скажет есть или нет такое значение в списке. | |
|
| |
|
|
|
| В вашем случае можно сделать для списка и поля со списком разные источники данных, с помощью конструкции NOT IN SELECT... | |
|
| |
|
|
|
| Это если бы источником были бы запросы или таблицы, а у меня набор записей.
Поэтому этот вариант не подходит. Или я тогда Вас не понял. | |
|
| |
|
|
|
| Что значит
по поводу внесения отстутствующего в списке есть функция LEFT JOIN.
вот тут были мысли по похожему поводу
http://hiprog.com/forum/read.php?id_forum=1&id_theme=5687&page=1
п.с. вопрос если можно по яснее изложите илил пример какой | |
|
| |
|
|
|
| Установлен тип источника данных "Список значений". Т.е. в источнике данных указывается так "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 уже есть в списке, то не добавлять его в поле со списком? | |
|
| |
|
|
|
| но что мешает проверять наличие ID перед добавлением?
Me.Поле1.RowSource - строка, так
значит можно Instr(Me.Поле1.RowSource,rec![ID] )
если есть вариант совпадения rec![ID] с rec![Name] то мона делать вторую строчку из одних rec![ID] и проверять ее | |
|
| |
|
|
|
| Как вы заполняете ComboBox и добавляете в ListBox? В А2002 у этих объектов появились методы AddItem и RemoveItem. Последний можно использовать для удаления элемента списка. | |
|
| |
|
|
|
| Такой строчкой добавляю в ComboBox значение:
Me.Поле1.RowSource = "-1; Значение 1" | |
|
| |
|
|
|
|
Такой строчкой добавляю в 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 | |
|
| |
|
|
|
| Спасибо за помощь.
Выкрутился с помощью временной таблицы и запроса not in select...
Только не смейтесь:) используется MS Access 97 | |
|
| |