|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Здравствуйте! Совсем мозг вывихнул от задачки. Есть набор данных выбираемых на форму по критериям из связанных таблиц. Вот таким запросом: Код: sql 1. 2. 3. 4.
Выбор происходит из таблицы DataDaily где ключевыми полями являются IDObj, IDParam, Y, M. Поле IDObj явлляется показателем обьекта. Как можно добавить тот же набор данных IDObj, IDParam изменив только значение M (месяц) и Y (год)? Возможно здесь не только SQL надо использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 00:03 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
можно сформировать общий запрос, а потом отбирать нужные фильтром в форме (так намного гибче) при создании отбора формируете фильтр и его применяете в форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 10:25 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Так и сделано, это запрос для формы. Мой вопрос как выбрать отображаемые данные (отфильтрованные на форме), изменить в них месяц и добавить опять в общую таблицу. Т.Е. создать "новый месяц". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 14:54 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Какой то глюк с форумом у меня. Ник greece это мой, наверное ночью я так воспринимаюсь форумом... :) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 15:05 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
saniiri, greece речь идет о том чтобы отбирать данные не запросом а фильтром, т.е. 1. сделали запрос общий, типа Код: vbnet 1. 2. 3. 4.
т.е. без "M" и "Y" а уже в форме делаете Код: vbnet 1. 2.
менять можно либо в диалоге, либо на форме сделать список -по событию меняете фильтрацию но и сортировка Me.OrderBy="IDObj, M, Y" Me.orderByOn=true ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 15:42 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Из записей отобранных в ленточную форму надо выбрать объекты (первый столбец) и создать новые пустые записи с ними в таблице. Не могу понять как можно в ленточной форме выбирать данные. предполагал конструкцию типа INSERT INTO DataDaily .... но возможно, надо будет добавить средства VBA вроде Each for ... Но не хватает опыта создания. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 16:25 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Задолбало... Опять ник сменился... Глючит форум при отправке сообщений. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 16:41 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
выбор строк:в таблице DataDaily делаете флажок- его и нажимаете (можно программно - например даблкликом) либо физически-показываете на форме и пользователь нажимая его-выбирает. выбор данных как Вам нужно, можно также сделать при помощи флажка - сделали флажок в таблице, при открытии формы все данные которые показаны - помечаете галочкой, далее помечаете галочкой те записи которые нужно добавить. все эти манипуляции нужно делать когда отбора нет - иначе записи которые изначально не отобраны добавить уже не получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 18:34 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Не совсем понятно как добавление флажков поможет. А как проводить обработку флажков? Надо создавать рекордсет или выбирать одну запись, изменять поле и делать добавление (по одному)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 19:09 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
greece, Одно из решений: создать два рекордсета-один на запросе(источнике данных формы после применения фильтра), которым отбираете записи,второй на таблице в которую собираетесь добавлять. если надо увеличить на месяц дату используете DateAdd (или,в зависимости от целей, используете что-то другое). Циклом Do Until по первому RS добавляете записи во второй RS (таблицу). Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 19:57 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
пытаюсь сделать такую конструкцию Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Но добавляется 0 записей, вероятно потому что выбираю следующий месяц а там по умолчанию еще нет никаких записей. Не пойму как сделать выбор существующих в данном месяце набора записей и перенести их в следующий (+1) месяц. С рекордсетами тоже не могу понять как реализовать... Прошу прощения, не большой опыт + чужой код+ ограниченное время... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 20:49 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Дело в том что база данных организована так - в одной таблице Админ, в другой Объекты, связи между ними поддерживает третья таблица Линк. Поэтому для вывода списка подчиненных объектов необходимо три таблицы. Кроме этого в таблицу DataDaily вносится значение параметра берущееся из отдельной таблицы тоже через линк-таблицу. Итого для внесения ключевых полей DataDaily необходимо как минимум выборка из 4 таблиц (правильней из 5). Поэтому пытаюсь выбрать оптимальный или хотябы работающий вариант... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 21:24 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
greece, флажки позволят отобрать нужные строки и в фильтр добавить допусловие, в соответствии с которым добавятся к существующим нужные строки нужного(ых) месяца(ев). обрабатывать флажки... конечно надо. нужен пример-по нему проще показать. (в двух словах: после вывода всех записей установили флажок вывода выведенных записей в true, затем выбрали запись - флажок выбора установился в true(записей несколько) по нему вытаскиваем коды всех нужных данных, затем ищем эти данные с учетом нового месяца, в исходной таблице устанавливаем флажок вывода этих данных в true и выводим, но уже с учетом флажка вывода (все остальные условия игнорим) :) ) я вижу примерно такое решение этой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 22:29 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
если требуется добавить записи с max.датой +1 месяц как-то так: ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 23:14 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Вогонку: Стесняюсь спросить:если Вы производите выборку из 3 таблиц и хотите добавить в поля этих таблиц одно и то же значение-разве это не грубое нарушение правил "базостроения" (одни и те же данные в нескольких таблицах)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 23:30 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
сообщение 20736448 не читать-прошу пощения-ляпнул бред ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2017, 23:55 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Что то у меня заработало, но не могу понять Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
не работает если нет записей. Если создавать запрос на добавление отдельно и с фиксированными значениями, все срабатывает. Из vba, с переменными работать не получается.... Базу приложить не могу минимальный обьем получается только 4Мб... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2017, 00:34 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
вот посмотрите, лучше бы конечно бы применительно к Вашей базе, но что есть-то есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2017, 13:05 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
alecko, хотелось бы узнать задачу стоящую перед Вами (исходные данные и конечный результат) и увидеть схему БД-может изначально все надо решать по другому ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2017, 13:16 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
sdku, задача стоит перед greece-saniiri, а Вашу базу я взял для примера. но суть такова - есть запрос, выводящий данные за какой-то период (например за месяц) по нескольким точкам, нужно выбрать какие-то строки и добавить данные за другой период, все остальное остается как есть (так я её понял). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2017, 20:40 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
Здравствуйте! Прошу извинить за долгую задержку с ответом. Был день рождения, потом отключился интернет. Сейчас всё восстановилось... :) Большое спасибо за помощь. Использовал вариант с полным добавлением набора строк. Код: 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. 32. 33. 34. 35. 36. 37. 38. 39.
К сожалению не разобрался как работает пример с отбором строк выделением. У меня не запустился (MSO 2007, MSO 2003). Наверняка тоже интересное решение. Может понадобится в будущем, ещё потыкаюсь. Спасибо братья по коду что не дали пропасть... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2017, 22:23 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
в примере, который я привел, может быть любой месяц, для любой строки. (там правда есть баг-в 133 строке в модуле формы вместо .findNext нужно использовать .findFirst) написано в DAO, может поэтому не запустилось? (у мну Acc2007) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2017, 22:57 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
alecko, Поправил код. Попробовал на 2007. Результат тот же - не добавляется... ((( Ваш вариант очень эффектный, но не могу разобрать почему не срабатывает. Для меня пока даже вопрос почему не используете в обоих примерах rst.Close, Set rst = Nothing .... ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2017, 23:49 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
greece Код: vbnet 1.
судя по этому фрагменту поле Y-текст, а М-число; это так? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 00:40 |
|
Добавление подобного набора записей
|
|||
---|---|---|---|
#18+
greece, потому что рекордсет формы закрывать нельзя-пропадет источник данных для формы, а также есть такое понятие область видимости, поэтому rst хотя "висит" но он удаляется после окончания программы но конечно set rst=nothing можно добавить в конец проги. очень странно что не срабатывает прога-наверное её надо или запустить из надежного расположения(параметры Access-Центр управления безопасностью-кнопка Параметры центра управления безопасностью-Надежные расположения(добавляете папку из которой собираетесь запускать проги), или "включить все макросы"-временно ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2017, 10:05 |
|
|
start [/forum/topic.php?fid=45&msg=39509638&tid=1612143]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 163ms |
0 / 0 |