|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Добрый день! На форме1 для ввода данных в таблицу1 есть несколько полей для заполнения, одно из них - это поле со списком! (основанное на данных таблицы2). Т.к. это поле со списком1 содержит фиксированный набор данных, возникает вопрос, а есть ли возможность добавления в таблицу2 новых значений прямо с текущей формы через это поле со списком1. Т.е. человек открывает форму с этими полями (ленточная форма) и начинает вводит данные. Наступила ситуация, когда в поле со списком1 нет необходимого значения, т.е. его нужно ввести в таблицу 2. Чтобы не выходить из формы (или не загружать новую, не открывать таблицу 2), можно ли ввести в поле со списком1 новое значение, чтобы оно сохранилось в таблице2 и соответственно при вводе следующей записи уже отображалась в поле со списком1? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 07:57 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Галочка, нет ничего невозможного. Вам как: по простому или с понтами? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 07:59 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Событие NotInList Ф1. В хелпе исчерпывающий пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 08:47 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Честно говоря, без разницы :) Главное, чтобы пользователям было удобнее работать. Думаю, чем проще, тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 08:47 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
П-ЛСобытие NotInList Ф1. В хелпе исчерпывающий пример. Спасибо. Но не срабатывает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Программа задает вопрос, на него отвечаю и в ответ "Обнаружены символы за пределами SQL" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 09:09 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Галочка, ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 09:21 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
ГалочкаНо не срабатывает. ctl.RowSource = ctl.RowSource & ";" & NewData Программа задает вопрос, на него отвечаю и в ответ "Обнаружены символы за пределами SQL"И программу тут можно даже понять. Если у вас в источнике строк списка написан SQL-строка (вида SELECT field1 from table1), а вы ей в конец дописываете введенный вами текст (вида Вася), то вы в итоге предлагаете своему списку такой источник: Код: plaintext 1.
Вы говорите, что взяли этот пример из справки - все указывает на то, что в том примере у списка источником был НЕ запрос/таблица, а список значений. Если в вашем случае источником является НЕ список значений, а запрос или таблица, то в приведенном вами коде вместо строки с добавлением NewData в RowSource, вам следует записать это NewData в виде новой записи непосредственно в ту самую таблицу, где эти значения хранятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2009, 11:31 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Спасибо всем за участие! Будем разбираться дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2009, 05:26 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Граждане! таки как добавить в поле со списком значение не из источника? суть есть табла. из двух полей: ключ и значение 1 значение1 2 значение2 3 значение3 Есть форма, в которой есть список: берущий значение из таблы. список отображает значение 1 2 3 а надо *новое значение 1 2 3 КАГ?????????????? заранее благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2009, 20:15 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Виталики ГмбхГраждане! таки как добавить в поле со списком значение не из источника? суть есть табла. из двух полей: ключ и значение 1 значение1 2 значение2 3 значение3 Есть форма, в которой есть список: берущий значение из таблы. список отображает значение 1 2 3 а надо *новое значение 1 2 3 КАГ?????????????? заранее благодарюЕсли у поля со списком тип источника (свойство RowSourceType) - Таблица/Запрос, то в таком списке показывается только записи из той самой таблицы/запроса. И если вы хотите показать в таком списке какое-то новое значение (которого в данный момент нет в источнике строк списка), вы обязаны добавить новую запись в его источник. Добавить такую запись в таблицу можно через рекордсет или запросом на вставку записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2009, 21:08 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Может тут помогут... Подскажите, как добавить в таблицу данные из листбокса? Есть список на форме и несколько полей. Надо добавить записи в таблицу для каждого элемента списка, данные из других полей формы будут одинаковые для всех записей. Т.е. должно получиться к примеру 10 записей, у которых отличаться будут только значения поля, взятые из листбокса. Можно сделать рекордсетом, наверное, но уверен, что можно еще проще. Спасибо. В листбоксе данные меняются вручную (ну почти), привязки к запросу нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2011, 15:03 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Ridddick, насколько я понял из вашего сообщения, вы имеете листбокс на форме, в котором оператор выбирает несколько значений. После выбора он нажимает кнопею "Добавить", и все данные плавно перетекают оттуда туда. Но способ с рекордсетом вас отпугивает сложностью, поэтому вы не рискуете нажимать кнопею, а хотите использовать запрос или какой-нибудь мастер. Но, если честно, создатели Аксесса не думали, что им придётся решать такую вот сложную задачу и не решились создать такой мастер. Способ с запросом хитёр, потому что вам сначала нужно вычислить, какие строки выбрал юзер, а какие не решился, добавить их во временную таблицу, а затем через SELECT INTO вставить оттуда туда. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2011, 20:07 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
CoolMind, Вообще, мне надо все значения из листбокса загнать в таблицу. В листбоксе список периодически обновляется (полностью) извне. Есть ли способ без временной таблицы? Приведу пример запроса, где значения берутся не из листбокса, а из текстового файла, откуда берутся все и сразу: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 07:50 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
RidddickCoolMind, Вообще, мне надо все значения из листбокса загнать в таблицу. В листбоксе список периодически обновляется (полностью) извне. Есть ли способ без временной таблицы? Приведу пример запроса, где значения берутся не из листбокса, а из текстового файла, откуда берутся все и сразу: Код: plaintext 1. 2.
В вашем же случае такого источника вы представить НЕ можете, ибо, как вы сами пишете, набор элементов вашего листбокса - это фактически массив значений в памяти. И чтобы вставить такой массив в таблицу в виде отдельных записей, вам надо перебрать в цикле элементы этого массива - и для каждого делать вставку записи - либо запросом типа INSERT INTO ... VALUES, либо через Recordset.AddNew. Если край надо одним запросом, как вариант можно написать функцию, которая по индексу возвращает значение элемента списка, а потом, используя digits , вызывать эту функцию в разделе select в запросе на вставку Код: plaintext 1. 2.
MyFunction - ваша функция, которая по индексу(параметру функции) возвращает значение элемента списка (а в случае -1 возвращает число элементо списка) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 09:12 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
нутакэта, Спасибо за интересное решение, правда, все равно сделал перебором значений и вставкой через рекордсет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2011, 15:16 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
нутакэта, Еще вопрос. У листбокса же тоже есть свойство recordset, почему его нельзя использовать в качестве источника и сделать из него SELECT? Или использовать его в качестве критерия "WHERE Поле IN Listbox.Recordset"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2011, 08:36 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Риддик, у вас путаница понятий. Рекордсет RecordSet это набор данных в памяти. "Делать из него SELECT" нельзя. Соединить его с другим рекордсетом тоже нельзя. Но, поскольку рекордсет был открыт на основе корректной SQL инструкции, вы можете написать другую инструкцию так, чтобы там использовались данные рекордсета. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2011, 08:41 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
П-Л, Рекордсет у листбокса... он просто есть )) А данные в листбокс заносятся вручную, они соответствуют определенному полю таблицы (и отчета). Мне надо открыть отчет с условием выборки по данным этого листбокса, т.е. показать записи, касаемые только тех значений, что находятся в листбоксе на данный момент. Неужели нет простого механизма выборки значений из него? Без экспорта во временную таблицу никак не обойтись? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2011, 08:58 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Если значения в листбокс заносились из поля таблицы, то должна быть логика отбора этих значений. Если вы выразите ее не на VBA на SQL вы получите возможность и дальше работать через SQL. Сколько еще раз вы будете спрашивать одно и то же ? Новых ответов вы не получите. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2011, 09:09 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Ridddick, забейте на SQL и сделайте всё через AddNew рекордсета. По-моему, уж проще некуда (в данном случае). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2011, 09:14 |
|
Добавление записи в таблицу с формы через поле со списком
|
|||
---|---|---|---|
#18+
Позвольте поднять тему, не могу разобраться с процедурой обработки события. Access 2010 в таблице создана связь один-ко-многим с другой таблицей для данного поля используется элемент поле со списком. Задача та же, если выбранных данных нет в списке, добавить их в список. Поле со списком берет данные из таблицы. Нашел скрипт обработки данного события, но никак ему ума не дам . Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
Не понял только строку Запроса в Case vbYes, точнее понял, что выполняется SQL запрос на добавление к таблице-источнику записей поля со списком, (tlkpCategoryNotInList (Category)) и затем выбираются вставленные данные. Не понимаю, что значит tlkpCategoryNotInList (Category)? По факту: Если для элемента поле со списком в Данных не задано поле "Форма изменения элементов списка" то при наступлении события просто выходит сообщение что нужно выбрать категорию, Если указанное поле задать, то просто открывается форма добавления записей в таблицу-источник. Можно ли сделать, чтоб необходимое значение добавлялось автоматом, с одним единственным вопросом, Добавить элемент в список? Да/Нет. По нажатии Да поле добавляется и выбирается в поле со списком, при нажатии нет, предлагается выбрать из имеющихся данных. И Если можно, то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 12:51 |
|
|
start [/forum/topic.php?fid=45&msg=37290535&tid=1614142]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 332ms |
total: | 486ms |
0 / 0 |