Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 257
1

Вывод значения предыдущей записи в форму

04.04.2018, 08:43. Просмотров 830. Ответов 8
Метки нет (Все метки)

В форме существует поле со списком. В поле вносятся данные из списка. Значение сохраняется форма закрывается. Создается новая запись через открытие этой же формы. Поле соответственно пустое. Как сделать так чтобы при открытии формы в поле подставлялось значение предыдущей записи.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2018, 08:43
Ответы с готовыми решениями:

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

Вывод в поле предыдущей записи таблицы
Здравствуйте. заранее пардонте за 100% глупый вопрос... мамой клянусь не первый день ответ ищу...

Присвоение значения новой записи по значению предыдущей (при условии)
Добрый день. Есть форма для заполнения справочника (внесение по одной записи за раз). При...

Обращение к предыдущей записи
Доброго времени суток. Вторую неделю читаю форум по данной проблеме, но все не могу найти что-то...

Обратиться к предыдущей записи
вот такой вопрос: допустим есть 2 поля в форме "остаток" и допустим "поле 2", как с помощью...

8
alvk
Эксперт MS Access
5799 / 3684 / 201
Регистрация: 12.08.2011
Сообщений: 9,702
04.04.2018, 09:14 2
На событии Загрузка пишем
Visual Basic
1
me.поле = dlookup("поле", "таблица", "код = " & dmax("код", "таблица"))
1
ltv_1953
Эксперт MS Access
13303 / 6012 / 1201
Регистрация: 21.06.2012
Сообщений: 10,856
04.04.2018, 09:19 3
Лучший ответ Сообщение было отмечено urman как решение

Решение

Цитата Сообщение от urman Посмотреть сообщение
Как сделать так чтобы при открытии формы в поле подставлялось значение предыдущей записи.
Попробуйте делать это присваивание в
Visual Basic
1
2
3
4
5
Private Sub Form_Current()
        If Me.NewRecord Then
             ...
        End If
End Sub
А уж как определить значение из "предыдущей записи" (по коду, по дате, ... ?) - Вам виднее.

Не по теме:

Опоздал.

0
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 257
05.11.2018, 15:12  [ТС] 4
Подскажите как поступать в этой ситуации. Мне необходимо чтобы подставлялось максимальное значение для открываемого в форме "Исследование" поля ID.

Visual Basic
1
2
3
DoCmd.OpenForm "Исследование", acNormal, acAdd, acNormal
Forms!исследование.ID.Value = Forms![MAIN].[Код].Value
Forms!исследование.Серия.Value = DLookup("Серия", "Направление", "Серия = " & DMax("Серия", "Направление"))
0
05.11.2018, 15:12
mobile
Эксперт MS Access
23719 / 13276 / 2802
Регистрация: 28.04.2012
Сообщений: 14,540
05.11.2018, 15:24 5
Цитата Сообщение от urman Посмотреть сообщение
необходимо чтобы подставлялось максимальное значение для открываемого в форме "Исследование" поля ID.
Предположу, что максимум надо искать в форме Main, а не в какой-то таблице. В таблице можно найти например с помощью Dmax. Для формы есть хороший выход: в примечании формы в свободном поле написать в свойстве Данные
Visual Basic
1
=max(ID)
Считывайте значение этого поля и найдете максимум ID в форме.
1
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 257
05.11.2018, 15:49  [ТС] 6
в форме main производится переход по записям,а уже соответственно для выбранной записи открывается форма "исследование".
Т.е. для значения "код" в главной таблице и форме "MAIN" существует множество значений "ID" в таблице "направление" и на форме "исследование", в ней же и поле "серия". И вот мне нужно чтобы подставлялось максимальное значение "серия" для открытого в форме "исследование" значения "ID".
Я просто не пойму как в этом коде
Visual Basic
1
Forms!исследование.Серия.Value = DLookup("Серия", "Направление", "Серия = " & DMax("Серия", "Направление"))
прописать условие на максимальное значение "Серия" для соответствующего открытого в форме "исследование" поля-значения "ID".
0
mobile
Эксперт MS Access
23719 / 13276 / 2802
Регистрация: 28.04.2012
Сообщений: 14,540
05.11.2018, 16:56 7
Цитата Сообщение от urman Посмотреть сообщение
условие на максимальное значение "Серия" для соответствующего открытого в форме "исследование" поля-значения "ID".
Может быть так?
Visual Basic
1
Forms!исследование.Серия=DMax("Серия", "Направление", "ID=" & Me.ID)
1
urman
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 257
05.11.2018, 18:54  [ТС] 8
Мобайл подскажите еще пожалуйста в этой связи пытаюсь использовать вот такой код
Visual Basic
1
Forms!исследование.Серия.Value = (CurrentDb.OpenRecordset("SELECT Max(Серия)  FROM Направление WHERE ((Направление.ID)=Forms!MAIN.[Код])").Fields(0)) + 1
запрос
SQL
1
SELECT MAX(Серия)  FROM Направление WHERE ((Направление.ID)=Forms!MAIN.[Код])
в конструкторе работает, а в VBA не в какую ничего не могу понять. Ошибка "слишком мало параметров требуется 1". Т.е. я так понимаю запрос в VBA не видит поле Forms!MAIN.[Код]. Хотя в тоже самое время запрос с этим же условием отрабатывается.
0
mobile
Эксперт MS Access
23719 / 13276 / 2802
Регистрация: 28.04.2012
Сообщений: 14,540
05.11.2018, 19:13 9
Цитата Сообщение от urman Посмотреть сообщение
я так понимаю запрос в VBA не видит поле Forms!MAIN.[Код]. Хотя в тоже самое время запрос с этим же условием отрабатывается.
Именно так. Запрос в конструкторе порождение Access и понимает что такое формы. А в коде работает DAO (или ADO) ничего не знающие о формах. Попробуйте вынести ссылку на форму из строки SQL, задав не ссылкой, а значением
Visual Basic
1
2
Forms!исследование!Серия = CurrentDb.OpenRecordset("SELECT Max(Серия) FROM Направление " _
& " WHERE Направление.ID=" & Forms!MAIN.[Код]).Fields(0) + 1
1
05.11.2018, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2018, 19:13

Значение предыдущей записи +1
Добрый день. Нашёл на форуме много вариантов, что бы по в поле формы "значение по умолчанию"...

Копирование предыдущей записи поля
Необходимо, чтобы при определенном условии копировалось предыдущее значение поля. Private Sub...

Обращение к предыдущей записи в таблице
Всем привет. Есть бд со следующими таблицами: Customer - справочник клиентов CustID:...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru