Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/33: Рейтинг темы: голосов - 33, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 110
1

Предыдущая запись как значение по умолчанию

08.03.2013, 22:17. Просмотров 6674. Ответов 47
Метки нет (Все метки)

Удивительно, но поиском не смог найти, хотя должно быть не первый спрашиваю...

Как в форме вида "Несколько элементов" сделать так, что бы значение предыдущей записи ставилось как значение по умолчанию?

То есть если в предыдущей записи было написано "Модель 1", то в следующей (создаваемой) по умолчанию сразу было "Модель 1". И человек если устраивает - ничего не менял бы. А если надо - тогда выбирал бы нужное из выпадающего списка.


/// снова переделываю свою базу. надеюсь теперь удастся отойти от экселлевской логики.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2013, 22:17
Ответы с готовыми решениями:

Как убрать следующая/предыдущая запись под постом
Собственно вопрос в заголовке. Как убрать эту бяку?

Кнопка следующая запись, предыдущая запись---какие коды
Подскажите пожалуйста коды на кнопки, выполняющие функции "следующая запись, предыдущая запись", по...

Следующая/предыдущая запись mysql
Доброго времени суток. На PHP сделал код для добавления и удаления записей. Есть главная...

Предыдущая запись foreach DataGridView
Как обратиться к предыдущей записи? Convert.ToSingle(row.Cells.Value) Добавлено через 1...

__________________
47
Эксперт MS Access
26626 / 14320 / 3171
Регистрация: 28.04.2012
Сообщений: 15,702
28.07.2016, 10:06 21
Visual Basic
1
=DLookUp("[Поле1]";"[Запрос1]";"Дата+Время=" & Format(DMax("[Дата]+Время";"[Запрос1]");"\#mm\/dd\/yyyy\ hh:nn:ss#")
3
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 07:44 22
Доброго дня. Спасибо ltv_1953 и mobile за помощь. Все работает ка нужно. Только вот одна проблема возникает. Значение по умолчанию вычисляется один раз, при открытии формы. Если вводится несколько записей, то во всех последующих, начиная со второй вводимой, значение по умолчанию будет статичным, найденным при открытии формы. Возможно ли как-то "повесить" нахождение значения по умолчанию не на открытие формы, а на получения фокуса полем, в котором необходимо выводить значение по умолчанию?

Добавлено через 6 минут
UPD: При том единожды, т.е. если, в последствии, это поле вновь получит фокус, то ранее введенное значение НЕ заменялось на значение по умолчанию.
0
Эксперт MS Access
6657 / 4251 / 264
Регистрация: 12.08.2011
Сообщений: 12,359
29.07.2016, 07:48 23
на событие "Текущая запись" ставьте.

Цитата Сообщение от zxcvbn12345 Посмотреть сообщение
т.е. если, в последствии, это поле вновь получит фокус, то ранее введенное значение НЕ заменялось на значение по умолчанию.
Покажите на примере, как поменять значение поля на значение по умолчанию при получении фокуса.
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 08:02 24
Я использую Access 2010, у меня в окне свойств нет события "Текущая запись" (скрин в архиве).
Я пробовал прописывать это вот так в "Получение фокуса".
DefaultValue=DLookUp("[Поле1]";"[Запрос1]";"Дата+Время=" & Format(DMax("[Дата]+Время";"[Запрос1]");"\#mm\/dd\/yyyy\ hh:nn:ss#")
В таком виде работать не хочет. Мои познания в Access в зачаточном состоянии, в виде пробы ухода от Excel. Если поменять значение поля на значение по умолчанию при получении фокуса в принципе не возможно, то тем проще для меня.
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 08:03 25
Архив:
0
Вложения
Тип файла: zip События.zip (8.9 Кб, 3 просмотров)
Мы один, давай на "ты"
2446 / 1035 / 250
Регистрация: 16.06.2016
Сообщений: 2,307
29.07.2016, 08:24 26
Цитата Сообщение от Ruido Посмотреть сообщение
То есть если в предыдущей записи было написано "Модель 1", то в следующей (создаваемой) по умолчанию сразу было "Модель 1".
Может хватит просто сочетание клавиш Ctrl+" ?
0
Эксперт MS Access
6657 / 4251 / 264
Регистрация: 12.08.2011
Сообщений: 12,359
29.07.2016, 08:26 27
Какая Кнопка? Я про события формы писал естественно. и не
Цитата Сообщение от zxcvbn12345 Посмотреть сообщение
DefaultValue
а me.названиеполя.DefaultValue
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 08:37 28
Цитата Сообщение от Панург Посмотреть сообщение
Может хватит просто сочетание клавиш Ctrl+"
Думаю, что нет. Значение по умолчанию берется из предыдущей записи другого поля.
0
Эксперт MS Access
16281 / 6734 / 1469
Регистрация: 21.06.2012
Сообщений: 12,440
29.07.2016, 08:47 29
Вместо задания значения по умолчанию просто присваивайте значение в процедуре Private Sub Form_BeforeInsert(Cancel As Integer).
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 10:38 30
Если можно, чуть подробней. Открываю форму в режиме конструктора, выделяю нужное поле ввода, нажимаю на Просмотреть код, и дальше куда, чего, как?
0
Эксперт MS Access
6657 / 4251 / 264
Регистрация: 12.08.2011
Сообщений: 12,359
29.07.2016, 10:50 31
Я тоже считаю, что вы всё изучите за 5 минут, это ведь так просто.
0
Эксперт MS Access
16281 / 6734 / 1469
Регистрация: 21.06.2012
Сообщений: 12,440
29.07.2016, 10:53 32
Цитата Сообщение от zxcvbn12345 Посмотреть сообщение
Открываю форму в режиме конструктора
Форма-События-До вставки ... Получается
Visual Basic
1
2
Private Sub Form_BeforeInsert(Cancel As Integer)
End Sub
Внутри процедуры пишите присваивание ... .
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 11:17 33
Присвоение так прописывается (скрин в архиве)?
0
Вложения
Тип файла: zip 123.zip (6.4 Кб, 1 просмотров)
Эксперт MS Access
16281 / 6734 / 1469
Регистрация: 21.06.2012
Сообщений: 12,440
29.07.2016, 11:22 34
А просто текст процедуры написать что не позволяет? Например так:
Visual Basic
1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
      Me.ВашеПоле=ВашеВыражение
End Sub
0
818 / 449 / 79
Регистрация: 18.05.2016
Сообщений: 1,216
Записей в блоге: 4
29.07.2016, 11:48 35
В msa97 была фича: Ctrl+Э - копировало значение ячейки из строки выше. Куда она делась в последующих версиях, не знаю. А было очень удобно. Даже в экселе нечто подобное есть: Ctrl+D и Ctrl+R

Добавлено через 22 минуты
Форма:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim LastF As String
 
Private Sub Form_Current()
If Me.Поле <> "" Then
    If Me.CurrentRecord = Me.Recordset.RecordCount Then
        LastF = Me.Поле
    End If
Else
    Me.Поле = LastF
End If
End Sub
 
Private Sub Поле_Change()
If Me.Поле <> "" Then
    LastF = Me.Поле.Text
End If
End Sub
Надо обязательно побывать в последней записи, чтоб в новой автоматом поставилось её значение
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 12:36 36
Visual Basic
1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.Поле2 = DLookUp("[Поле1]";"[Запрос1]";"Дата+Время=" & Format(DMax("[Дата]+Время";"[Запрос1]");"\#mm\/dd\/yyyy\ hh:nn:ss#"))
End Sub
Ругается на не правильный синтаксис.
0
Эксперт MS Access
16281 / 6734 / 1469
Регистрация: 21.06.2012
Сообщений: 12,440
29.07.2016, 12:40 37
Это текст из конструктора. В VBA и SQL вместо разделителя ";" нужно ставить ",". Выделить DLookUp и нажать F1 для вызова справки что не позволяет?
0
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 13:31 38
Visual Basic
1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.Поле2 = DLookUp("[Поле1]","[Запрос1]","Дата+Время=" & Format(DMax("[Дата]+Время","[Запрос1]"),"\#mm.dd.yyyy\ hh:nn:ss#"))
End Sub
Я посмотрел справку на Format там ещё вместо mm\/dd\/yyyy точки mm.dd.yyyy. Но и это не помогает. Все равно ругается. "Дата содержит синтаксическую ошибку вы выражении запроса..."
0
Эксперт MS Access
16281 / 6734 / 1469
Регистрация: 21.06.2012
Сообщений: 12,440
29.07.2016, 13:37 39
Цитата Сообщение от mobile Посмотреть сообщение
Format(DMax("[Дата]+Время";"[Запрос1]");"\#mm\/dd\/yyyy\ hh:nn:ss#")
Цитата Сообщение от zxcvbn12345 Посмотреть сообщение
Format(DMax("[Дата]+Время","[Запрос1]"),"\#mm.dd.yyyy\ hh:nn:ss#"))
Разницу (кроме замены ; на ,) за Вас нужно найти?

Не по теме:

ТС уже и копипастить разучились ... .

2
0 / 0 / 0
Регистрация: 28.07.2016
Сообщений: 13
29.07.2016, 13:57 40
Заработало как требовалось. Всем спасибо.

Добавлено через 1 минуту
Может кто порекомендует хороший справочник по VBA?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2016, 13:57

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Предыдущая запись переодического регистра сведений
Здрасте, как получить значение ресурса предыдущей записи регистра сведений. Нужно получить разность...

Как разрешить запись в файл, по умолчанию запись не разрешена
Помогите! НАчинающий php - программист. Как разрешить запись в файл, по умолчанию запись не...

Как сделать значение по умолчанию для параметра, если оно должно быть значением по умолчанию для типа T?
Как сделать значение по умолчанию для параметра, если оно должно быть значением по умолчанию для...

Как сделать учетную запись по умолчанию
На компе есть две учетки Администратор и Гость который отключен Но при перезагрузке компа...


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

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

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