7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 282
1

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

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

Author24 — интернет-сервис помощи студентам
В форме существует поле со списком. В поле вносятся данные из списка. Значение сохраняется форма закрывается. Создается новая запись через открытие этой же формы. Поле соответственно пустое. Как сделать так чтобы при открытии формы в поле подставлялось значение предыдущей записи.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2018, 08:43
Ответы с готовыми решениями:

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

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

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

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

8
Эксперт MS Access
7395 / 4532 / 295
Регистрация: 12.08.2011
Сообщений: 14,015
04.04.2018, 09:14 2
На событии Загрузка пишем
Visual Basic
1
me.поле = dlookup("поле", "таблица", "код = " & dmax("код", "таблица"))
1
Эксперт MS Access
17485 / 7247 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
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
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 282
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
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.11.2018, 15:24 5
Цитата Сообщение от urman Посмотреть сообщение
необходимо чтобы подставлялось максимальное значение для открываемого в форме "Исследование" поля ID.
Предположу, что максимум надо искать в форме Main, а не в какой-то таблице. В таблице можно найти например с помощью Dmax. Для формы есть хороший выход: в примечании формы в свободном поле написать в свойстве Данные
Visual Basic
1
=max(ID)
Считывайте значение этого поля и найдете максимум ID в форме.
1
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 282
05.11.2018, 15:49  [ТС] 6
в форме main производится переход по записям,а уже соответственно для выбранной записи открывается форма "исследование".
Т.е. для значения "код" в главной таблице и форме "MAIN" существует множество значений "ID" в таблице "направление" и на форме "исследование", в ней же и поле "серия". И вот мне нужно чтобы подставлялось максимальное значение "серия" для открытого в форме "исследование" значения "ID".
Я просто не пойму как в этом коде
Visual Basic
1
Forms!исследование.Серия.Value = DLookup("Серия", "Направление", "Серия = " & DMax("Серия", "Направление"))
прописать условие на максимальное значение "Серия" для соответствующего открытого в форме "исследование" поля-значения "ID".
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.11.2018, 16:56 7
Цитата Сообщение от urman Посмотреть сообщение
условие на максимальное значение "Серия" для соответствующего открытого в форме "исследование" поля-значения "ID".
Может быть так?
Visual Basic
1
Forms!исследование.Серия=DMax("Серия", "Направление", "ID=" & Me.ID)
1
7 / 7 / 0
Регистрация: 10.04.2015
Сообщений: 282
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
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2018, 19:13
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru