8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
||||||
1 | ||||||
Запись в один столбец таблицы из разных полей формы.12.04.2012, 22:10. Показов 3530. Ответов 18
Метки нет Все метки)
(
Доброго времени суток. Уважаемые господа, в очередной раз обращаюсь к вам за помощью. Пользователи БД подбрасывают задачки, а решить их начинающему не всегда под силу. Подскажите если не трудно, имеется ли возможность из трех полей формы сохранять информацию в одно поле таблицы в разных строках. То есть на форме поля со списком П1, П2, П3. В таблице "товар" столбец "наименование". Требуется сделать так, чтобы при выборе в каждом поле формы данные сохранялись в таблицу с добавлением новой строки (и уникального кода (поле счетчик)), но в самой форме как минимум до ее закрытия отображались изначально выбранные значения. Например: П1 - светильник точечный, П2 - светильник хромированный, П3 - светильник бронзовый. А в таблиц все эти наименования в одном столбце и имеют уникальный код. Такое вообще возможно? Заранее благодарю!
ps. Да забыл написать. Пытался сделать действие на событие в поле со списком
0
|
|
12.04.2012, 22:10 | |
Ответы с готовыми решениями:
18
Сохранение значений полей формы при переходе на пустую запись таблицы
|
Нарушитель
![]() 7266 / 4468 / 288
Регистрация: 12.08.2011
Сообщений: 13,503
|
|
13.04.2012, 04:48 | 2 |
Лучше один раз увидеть, чем сто раз услышать. (с) Народная мудрость.
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
||||||
13.04.2012, 16:42 [ТС] | 3 | |||||
Попытался так решить свою проблему: создал свободную форму с полями П1, П2, П3 и т.д., потом построил несколько (по количеству полей в форме) запросов на добавление в таблицу, закинул их все в один макрос, установил его запуск на событие нажатие кнопки. Вобщем то все работает, но... Хочется, чтоб это делалось одним запросом, и еще не предупреждало пользователя о добавлении записей в таблицу (ему этого знать необязятельно, а то будет пугаться
![]()
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
13.04.2012, 18:33 | 4 |
Предположим, что пользователь заполнил все три поля и нажал кнопку, но потом спохватился, заметив, что одно из данных внесено неправильно, подправил и снова нажал кнопку. Итог: две пары записей в таблице дублируются + одна ошибочная + одна нормальная.
Это можно сделать, но нужно ли? Используйте не DoCmd.RunSQL, а CurrentDb.Execute Дублирование и ошибочные записи в таблице также обеспечены. Если правильно понял задачу, то совет такой. Сделайте вы ленточную форму, источником данных которой будет ваша таблица. В конструкторе установите значение "Да" у ее свойства "Ввод данных". При открытии формы существующие записи таблицы не будут отображаться. И пускай пользователь вводит сколько ему вздумается записей и корректирует их, как его душеньке угодно. И никаких кнопок, никаких запросов.
2
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
|
13.04.2012, 19:00 [ТС] | 5 |
Что касается дублирования записей - предусмотрено. На форме Флажок, галка в который проставляется при нажатии на кнопку запуска макроса и устанавливается запрет на повторное занесение данных.
По поводу ленточной формы - попробую. Поясню, для чего мне нужно, чтобы данные в форме оставались неизменными до ее закрытия. Просто из нее они (данные) публикуются в Ворд через ссылки на закладки (в приложение к договору). Спасибо, что откликнулись, спасибо за подсказки. Думаю, что ваши советы мне пригодятся.
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
13.04.2012, 19:06 | 6 |
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
|
13.04.2012, 21:58 [ТС] | 7 |
Честно говоря не задумывался. Нужно предусмотреть корректировку.
Добавлено через 1 час 43 минуты Господа, мне кто нибудь подскажет, что нужно прописать в запросе, чтобы в таблицу добавлялась новая строка? Или это невозможно?
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
||||||
13.04.2012, 23:00 | 8 | |||||
![]()
1
|
andrey_ba
|
13.04.2012, 23:10
#9
|
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|||||||||||
13.04.2012, 23:38 | 10 | ||||||||||
Если бы были известны типы полей таблицы, то тогда не помещал бы внутрь запроса ссылки на поля формы, а поместил бы значения полей формы, например, вместо
2
|
Нарушитель
![]() 7266 / 4468 / 288
Регистрация: 12.08.2011
Сообщений: 13,503
|
|
14.04.2012, 01:40 | 11 |
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
||||||
15.04.2012, 01:06 [ТС] | 12 | |||||
Уважаемые господа, подскажите, какая ошибка в синтаксисе?
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
||||||
15.04.2012, 10:49 | 13 | |||||
1. Строки 2, 4, 5, 6
3. Уберите запятую после f5 в 3-ей строке. 4. Уберите кавычки перед закрывающейся скобкой в 7-ой строке, да и пробелы там никчему. 5. Почему нет соответствия между количеством полей мсточника и приемника? Возможно, что-то еще упустил. Добавлено через 3 часа 3 минуты diverbs, в данной задаче, чтобы было меньше мороки, лучше использовать рекордсет. Кроме того, элементам управления нужно давать осмысленные имена, чтобы по прошествию некоторого времени не гадать: "а что у меня находится в Поле358?". В коде ниже заменено: Поле1 - id_ofis, Поле58 - id_ofis_sviaz, Поле3 - id_zakazchik, ПолеСоСписком13/14/15/16 - inaimenov1/2/3/4, Поле358/359/360/361 - kolich1/2/3/4.
1
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
|
15.04.2012, 12:18 [ТС] | 14 |
Спасибо за помощь. С пробелами у меня было все в порядке. Это при копировании из VB почему то они пропали. Вся проблема была в кавычках перед скобкой в конце седьмой строки. Несоответствие было потому, что часть текста для уменьшения объема сообщения я убирал. Не все лишнее убрал. Сейчас все работает. Позже попробую еще предложенный вами вариант (сегодня все же праздник). Еще раз огромное спасибо!!!
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
|||||||||||
16.04.2012, 23:35 [ТС] | 15 | ||||||||||
Попробывал использоывать рекордсет:
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
17.04.2012, 00:13 | 16 |
Да, праздники многим на пользу не пошли
![]() Мной представлен код, который вы можете поместить в любую процедуру или функцию, толи это будет процедура обработки некоего события, толи пользовательская прцедура. Я же ведь заранее не могу предугадать, где вам понадобится данный код. По вопросу о прочерке. Оператор If (Me.inaimenov <> "-") Then поместите перед .AddNew, а конец End If после .Update. Кстати, как у вас всетаки называется поле формы, inaimenov или naimen+индекс, или это разные поля?
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
||||||
17.04.2012, 12:16 [ТС] | 17 | |||||
Вы думаете без праздников я бы лучше ращобрался?
![]()
Добавлено через 11 часов 23 минуты Е-мое! Вчера уже выключил комп, закурил перед сном сигарету и понял где моя ошибка! Дошло, что в условии вместо имени поля на форме я писал имя поля таблицы ![]()
0
|
3541 / 1115 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
17.04.2012, 12:43 | 18 |
В предыдущем моем сообщении (последнее предложение), я вам намекал о возможном несоответствии.
P.S. Все таки, наверное, тяжело отказаться от привычки давать бессмысленные имена элементам управления (Флажок44).
0
|
8 / 8 / 0
Регистрация: 12.03.2012
Сообщений: 35
|
|
17.04.2012, 18:43 [ТС] | 19 |
Ага, именно это и навело меня на обнаружение ошибки. только почему то уже после выключения компа (замедленные рефлексы после праздника
![]() И это утверждение верно. Хотя сам себя за это ругаю, но... Буду исправляться.
0
|
17.04.2012, 18:43 | |
Помогаю со студенческими работами здесь
19
Один связанный столбец в двух BDGRID на разных формах Отчет из разных полей формы Сбор в один столбец запроса данных из столбцов 2-х разных таблиц. Вывод полей таблицы на разных языках Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |