Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7

Вывод в поле предыдущей записи таблицы

10.09.2013, 20:59. Показов 7021. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
заранее пардонте за 100% глупый вопрос... мамой клянусь не первый день ответ ищу
не могу вывести в поле прошлую запись таблицы. Ключевое поле [Код] имеется... но всё что мне попадалось, через VBA или запросы, не получалось, я не говорю что методы фуфло, я говорю что я идиот. Подсобите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.09.2013, 20:59
Ответы с готовыми решениями:

Отображение в поле значения предыдущей записи
Всем очень добрый день! Подскажите пожалуйста как вывести на форме, в прилагаемом примере, последнее записанное значение перед новой...

Access, в поле значение по умолчанию из предыдущей записи этого же поля
я в аксессе новичок, мало что понимаю. но работу облегчить хочу. можно ли в поле по умолчанию выставить значение из предыдущей записи...

Поле, автоматически высчитывающее своё значение исходя из предыдущей записи
Уважаемые форумчане, помогите мне с моей проблемой. Имеется таблица следующей структуры: |IDОперация (PK,int)| |Приход (money)| ...

26
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 05:00
Цитата Сообщение от anti3d Посмотреть сообщение
не могу вывести в поле прошлую запись таблицы. Ключевое поле [Код] имеется
Давайте уточним: есть некая форма, в ней поля записей таблицы + свободное поле. Нужно в этом поле вывести ключевое поле прошлой (последней по ключу, но не совпадающей с текущей) записи. Так?
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
11.09.2013, 05:16  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Давайте уточним:
извиняюсь за столь скудное объяснение... да, есть форма, из полей заносятся данные в таблицу, но, для того чтобы не ошибиться при следующем вводе, нужно видеть данные из предыдущей записи. А "(последней по ключу, но не совпадающей с текущей)" я чет понять не могу , не спал ещё Но вроде я объяснил задачу. Сейчас вот упорно пробую DLookup() но чето не очень выходит.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 05:28
Цитата Сообщение от anti3d Посмотреть сообщение
нужно видеть данные из предыдущей записи
"Предыдущая" зависит от той сортировки записей, которая сделана в форме. Может быть предыдущая по дате, по полю счетчика, ... как отсортировать.
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
11.09.2013, 05:29  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
"Предыдущая" зависит от той сортировки записей
по счетчику.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 05:42
Ключ этой записи определяется выражением в поле формы DMax("Ключ";"Таблица";"Ключ<>" & Nz([Ключ];0)). Предполагается, что ключ - счетчик с последовательными значениями.
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
11.09.2013, 17:13  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Ключ этой записи определяется выражением в поле формы DMax("Ключ";"Таблица";"Ключ<>" & Nz([Ключ];0)). Предполагается, что ключ - счетчик с последовательными значениями.
блин, уснул... Спасибо большое бро! Только вместо DMax я заюзал DLookUp("info2";"Table1";"ID=" & Nz([ID]-1;0)) - вроде корректнее выводит инфу(файлик прилагается - access 2013). Яб фиг догадался как написать, по ссылке что я давал выше о DLookUp, не пашет нифига, видимо для других версий. В общем что надо, спасибо.
Вложения
Тип файла: zip test.zip (52.3 Кб, 84 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 17:17
Цитата Сообщение от anti3d Посмотреть сообщение
DLookUp("info2";"Table1";"ID=" & Nz([ID]-1;0))
А если предыдущая запись удалена или ввод ее был начат и отменен, то такой вообще не будет.
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
11.09.2013, 17:26  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
А если предыдущая запись удалена или ввод ее был начат и отменен, то такой вообще не будет.
Ну, записи удалять вроде не планируется... Но ваш вариант - без удаления записей, не много странно выводит, гляньте в файлеке... Можно конечно и DMax("info2";"Table1";"ID=" & Nz([ID]-1;0)) написать, но что-то получается одинаково с DLookUp при удалённой записи... В общем для меня сойдет, но для удалённых записей нужно что-то еще писать да.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 17:33
DMax("info2";"Table1";"ID=" & Nz([ID]-1;0)) - DMax здесь не нужно. Точнее будет, чтобы не только в вводимой показывало, DMax("info2";"Table1";"ID<" & Nz([ID];0))
1
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 17:43
Посмотрите, как во вложении вычисляется
Вложения
Тип файла: 7z db9.7z (7.4 Кб, 87 просмотров)
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
11.09.2013, 22:06  [ТС]
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Посмотрите, как во вложении вычисляется
Да, выводит хорошо, но только по полю Код, а если мне надо из строкового поля получить запись? В вашем примере пишу: =Nz(DMax("Имя";"Таблица1";"Код<" & Nz([Код];0));0) - получается ерунда. Может чего не так понимаю? Блин, казалось бы, всего лишь прошлая запись.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
11.09.2013, 23:43
А где все это отображать: Имя и остальные поля (сколько их всего будет, кстати?). Может быть конкретизируете задачу. Видеть код предыдущей записи, как поле текущей записи - это одна задача. А видеть поля (не одно, а несколько) предыдущей записи - другая. Почему бы просто не использовать для этого ленточную форму, например, в которой видны несколько последовательных записей.
А поле Имя отображается таким выражением DLookUp("Имя";"Таблица1";"Код=" & Nz(DMax("Код";"Таблица1";"Код<" & Nz([Код];0));0)). Т.е. старое выражение находит код предыдущей записи, DLookUp - соответствующее имя.
1
0 / 0 / 0
Регистрация: 10.09.2013
Сообщений: 7
12.09.2013, 00:11  [ТС]
Спасибо! Да, этот код - что надо. А полей будет не много, 2-3, все по одной только предыдущей записи. О ленточных формах ничего не знаю, ибо с акцессом работал лет 5 назад, приходилось... сейчас, как обычно думал, на скорую руку забодяжить в общем не хотел "точить пилу" хотел работать("пилить") тупой "пилой", вот и напилил, сколько дней впустую Ну ладно... думаю что, я не скоро к акцессу вернусь, так что всё равно забуду всё - снова.
0
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
02.03.2016, 17:25
Точнее будет, чтобы не только в вводимой показывало, DMax("info2";"Table1";"ID<" & Nz([ID];0))
Этот вариант отлично работает в уже существующих записях, но при переходе на добавить новую запись увы ничего не отображает.

Добавлено через 22 минуты
Вроде бы так работает: =DMax("№договора";"договора")
То есть мне нужно, при вводе нового номера договора, видеть какой был предыдущий. Правильно ли я сделал?
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
02.03.2016, 17:37
sana555, А зачем вам нужно видеть предыдущий?
Номер должес сам, вез вашего участия вводиться или вам обязательно ручками, да еще и с вероятной возможностью ошибиться, т. к. в это время чихнули и нажали не на ту цыферку, но не заметили этого.

Добавлено через 5 минут
Автоматом присвоить можно вот такой процедурой, например по нажатию кнопки или После обновления поля со списком
Me.№договора = Nz(DMax("№договора", "договора"), 0) + 1
1
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
02.03.2016, 17:41
Цитата Сообщение от PuhKMV Посмотреть сообщение
sana555, А зачем вам нужно видеть предыдущий?
Номер должес сам, вез вашего участия вводиться или вам обязательно ручками, да еще и с вероятной возможностью ошибиться, т. к. в это время чихнули и нажали не на ту цыферку, но не заметили этого.
Я с вами абсолютно согласен, но дело в том что договора заключаются на месте у заказчиков и там же пишется номер договора. Номера договоров не пишутся заранее, поскольку есть вероятность, что его не заключат. Поэтому, данные только потом вводятся в базу данных, на основании подписанного договора.
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
02.03.2016, 17:44
Ну вот и создайте кнопку - Заключить договор, иначе зачем вам нужно знать № предыдущего?
Но дело ваше.
0
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
03.03.2016, 16:00
Цитата Сообщение от PuhKMV Посмотреть сообщение
Ну вот и создайте кнопку - Заключить договор, иначе зачем вам нужно знать № предыдущего?
Стою на асфальте в лыжи обутый...) - это я про себя...)
Не так все происходит, у заказчиков договор только заполняется и подписывается с его стороны, без номера договора. Далее этот договор менеджер несет директору, который все проверяет, подписывает и ставит номер договора, который и должен подглядеть из базы данных (какой там был последний номер договора). А потом менеджер относить подписанный договор обратно к заказчику.
Собственно ваше решение подходит Me.№договора = Nz(DMax("№договора", "договора"), 0) + 1
Только я его поставил на событие формы Внесены изменения, поскольку пока что нибудь заполняю, то уже увижу номер договора.
Спасибо за ответ.

Добавлено через 21 час 33 минуты
В общем пришлось отказаться от Me.№договора = Nz(DMax("№договора", "договора"), 0) + 1, поскольку при пролистывание записей, в случае случайного нажатия на поле №договора, он меняется на последний и можно не заметить. Поэтому в форме, в поле №договора в значении по умолчанию написал счетчик:
=DMax("№договора";"договора")+1
Работает вроде хорошо, и только в новой записи.
0
 Аватар для VinniPuh
9129 / 6134 / 593
Регистрация: 27.03.2013
Сообщений: 19,984
03.03.2016, 16:17
Цитата Сообщение от sana555 Посмотреть сообщение
и только в новой записи.
Ну я про новую запись только и трындил, или вы вааще про чё то другое шептались?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2016, 16:17
Помогаю со студенческими работами здесь

Вывод значения предыдущей записи в форму
В форме существует поле со списком. В поле вносятся данные из списка. Значение сохраняется форма закрывается. Создается новая запись через...

Заполнить значение поля таблицы из другого поля этой же таблицы, но предыдущей записи
У меня есть таблица кассовая книга. В ней содержатся данные по каждому рабочему дню: Дата, остаток на начало дня, приход, расход, остаток...

для каждой записи с таблицы 1,поле ФИО, выделит отдельно фамилию,имя,отчестово и запишет их в соответсвтующие поля таблицы 2.
Написать программу,которая: для каждой записи с таблицы 1,поле ФИО, выделит отдельно фамилию,имя,отчестово и запишет их в соответсвтующие...

Тип RTF в поле записи таблицы
Я недавно создал тему в другом разделе этого форума Почему отображается не форматированный текст, а html код В этой теме мне пояснили что...

Добавить поле из таблицы пациентов в таблицу журнала записи
Есть таблица Gurnal_zapici (Kod_gurnala,Kod_pacienta,Data_priema) и есть таблица Pacienti(Kod_pacienta,FiO_Pacienta) нужно осуществить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru