|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
||||||
Как выбрать последнюю запись?06.08.2018, 16:32. Показов 5072. Ответов 51
Метки нет (Все метки)
Есть таблица. В ней 4 столбца, во всех ячейках содержатся даты.
В первую строку даты я вношу руками. А дальше хочу их размножить макросом. Давайте для примера ограничимся одним столбцом. Мне нужно к последней записанной дате добавить 26 недель. Это вроде понятно:
Предполагаю, как поместить результат вычислений в новую строку - мне тоже будет не понятно. Буду очень благодарен, если кто напишет макрос целиком.
0
|
||||||
| 06.08.2018, 16:32 | |
|
Ответы с готовыми решениями:
51
Как выбрать последнюю запись перед указанной датой? Как найти последнюю запись в таблице? Как оставить в поле формы последнюю просмотренную запись? |
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 06.08.2018, 16:36 | |
|
Вам явно не сюда, а в раздел Экселя). Судя по описываемой вами ситуации, вы применеяте к Аксесу именно экселевскую логику...
Начнем с того, что в Аксесе НЕТ понятия "последняя строка". Задал другую сортировку - и привет, строки поменялись. Добавлено через 1 минуту Само собой, что поставленную вами задачу решить МОЖНО, но это будет выглядеть явно не так, как вы это себе представляете.
1
|
|
|
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,429
|
||
| 06.08.2018, 16:37 | ||
|
Решайте на VBA - будет проще!
0
|
||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 06.08.2018, 16:42 | |
|
По идее (если отбросить сам факт того, что скорее всего автор вопроса неправильно ставит перед собой задачу), это можно решить через VBA работой с рекордсетом таблицы.
Добавлено через 1 минуту Если набросаете хотя бы примерную базу с готовой таблицей, в которой можно будет показать пример, то могу решить на VBA. И опять же, в Аксесе мы все действия выполняем не прямо непосредственно в таблице, а в формах.
1
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 06.08.2018, 16:43 | |
|
avuremybe,
Нужно создать последовательность из 26-ти записей? Поищите здесь в разделе "запрос Digits". Он должен помочь.
0
|
|
|
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,429
|
|
| 06.08.2018, 16:57 | |
|
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 06.08.2018, 17:26 | |
|
Можно по-разному, это да.
Например, INSERT в цикле. Или просто в рекордсет писать. А использовать MSysObjects не обязательно. Подойдет любая непустая таблица.
0
|
|
|
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,429
|
|
| 06.08.2018, 17:34 | |
|
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 06.08.2018, 18:56 | |
|
Eugene-LS,
Вы неправильно соединили высказывания. Имелось в виду, что таблица в запросе Digits - не обязательно MSysObjects. А рады почему?
0
|
|
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
|
| 07.08.2018, 08:36 [ТС] | |
|
На VBA я и хочу это реализовать.
Прикрепляю тестовую базу: Имеется таблица с перечнем имеющегося оборудования. Каждая машина имеет 4 категории запчастей, обслуживание которых производится с разным временным интрвалом (26, 52, 104 и 130 недель). Этим интервалам соответствуют столбцы в таблице с датами. Первичные даты (от которых отталкиваться) я забиваю руками. А дальше я вижу ситуацию так: Я в форме выбираю из выпадающего списка нужное мне оборудование и нажатием на кнопку скрипт добавляет мне новые записи в таблицу с датами. А именно - к последней дате в столбце "Период 26" добавляет 26 недель, в столбце "Период 52" - 52 недели и так далее. Количество добавляемых записей - было бы идеально, если бы добавлялся год. Правда скрипт придется усложнить IF'ами, чтобы он проверял, не будет ли новая дата выходить за установленные рамки.
0
|
|
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
|
| 07.08.2018, 10:36 [ТС] | |
|
К слову, за неделю поиска в гугле, я так и не узнал, как мне занести последнюю запись из запроса в переменную, чтобы подставить ее в функцию DateAdd("ww", 26, X).
Я работал на С и на РНР - там все предельно просто. А тут банально значение в переменную неделю занести не могу. Ну т.е. как занести значение понятно, не понятно только как это значение получить. Есть какой-то объект Recordset (а может и не объект. справка в одном предложении называет его и объектом, и свойством, и ссылкой, и клоном объекта и еще чем-то там, не помню уже). Я не до конца понимаю, что он собой являет, но в нем вроде как хранятся записи. Как я понял, я могу в него поместить свой запрос. Но как добыть из этого Recordset'a значение, которое хранится в нужной мне ячейке, я так узнать и не смог.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|||||||
| 07.08.2018, 11:27 | |||||||
Сообщение было отмечено avuremybe как решение
РешениеЭто легко. Вопрос только, как определить "последнюю запись" - записи становятся последними или первыми только в результате сортировки. Если "последняя" - запись с максимальным значением, то имеем:
1
|
|||||||
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
||||||
| 07.08.2018, 11:47 [ТС] | ||||||
|
Capi, хотел протестировать, но мне при попытке запустить мой скрипт пишет "Object required" и подсвечивает желтым первую строку (где Private Sub)
0
|
||||||
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
|
| 07.08.2018, 11:57 | |
|
avuremybe,
Насчет подсвечивания заголовка процедуры ничего не могу сказать. В целом вроде все, условно говоря, верно. Но в рекордсет достаточно выбирать только [Stored dates].[Период 26], ведь другие поля не используются здесь.
0
|
|
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
||||||||||||
| 07.08.2018, 12:16 [ТС] | ||||||||||||
|
Установил переменной d тип Variant.
Теперь ругается на строку "Set rst = . . ." - говорит "Слишком мало параметров. Требуется 1."
0
|
||||||||||||
|
Мы один, давай на "ты"
3836 / 1382 / 343
Регистрация: 16.06.2016
Сообщений: 3,273
|
||||
| 07.08.2018, 12:34 | ||||
|
Убери Set... Добавлено через 2 минуты + название поля заключи в квадратные скобки.
1
|
||||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
|
| 07.08.2018, 14:08 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
|||||||
| 07.08.2018, 14:11 [ТС] | |||||||
|
Панург, ничего не изменилось.
"Слишком мало параметров. Требуется 1." и подсвечивает Set rst
0
|
|||||||
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 55
|
||||||
| 07.08.2018, 14:21 [ТС] | ||||||
|
Поправил синтаксис во всех полях.
Теперь вообще не понятно, на что оно ругается.
0
|
||||||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
|
||
| 07.08.2018, 14:23 | ||
|
0
|
||
| 07.08.2018, 14:23 | |
|
Помогаю со студенческими работами здесь
20
Как записать последнюю запись поля из запроса в таблицу? Как отразить на форме последнюю запись с другой формы Как в подчинённой форме сделать текущей последнюю запись
Как вставить в поле со списком последнюю строку или запись из необходимой таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|