Помогите начинающему Аксесовцу
Victor5000
Дата: 27.05.2004 10:33:20
Как при вводе новой записи в форме, добавлять в одно из полей значение из предыдущей записи, а именно числовое значение увеличенное на 1?
Подскажите плиззз! или ссылочку на нужный топик дайте, ничего не нашёл...
Заранее спасибо!!!
Kelme
Дата: 27.05.2004 10:43:31
Самый простой вариант добавить поле с типом AutoNumber, при добавлении новой записи его значение будет увеличиваться на единицу
paparome
Дата: 27.05.2004 10:43:36
Поле сделать счетчиком и не париться!!!
Rivkin Dmitry
Дата: 27.05.2004 10:44:09
А что значит - предыдущая запись? Последняя в таблице?
Придумать можно много чего - если тебя не устраивает AutoNumber в этом поле, открой recordset на OnOpen Form сдвинься на последнюю запись и запомни ее в переменке, затем, каждый раз на Before Insert for Form внеси в свое поле нужное тебе значение
paparome
Дата: 27.05.2004 10:51:40
Значение по умолчанию пишешь примерно такое
=Nz(DMax("id";"таблица1");0)+1 (где id - интересующее поле)
В модуле формы вешаешь событие
Private Sub Form_AfterInsert()
Me.id.DefaultValue = Me.id.DefaultValue
End Sub
|
|
Да - и доступ к полю id закрой на всяк случай :)
Rivkin Dmitry
Дата: 27.05.2004 10:57:47
А если у него есть группировка по кауим нибудь полям? Тогда ни AutoNumber не поможет ни DMax(ID), только трюки с Recordset or RecordsetClone
Kelme
Дата: 27.05.2004 11:06:31
А если у него есть группировка по кауим нибудь полям? Тогда ни AutoNumber не поможет ни DMax(ID), только трюки с Recordset or RecordsetClone
|
|
Причём здесь групировки? Как группировка в запросе может повлиять на ф-ию DMax?
paparome
Дата: 27.05.2004 11:13:44
| | автор |
| | А если у него есть группировка по кауим нибудь полям? |
А если группировка, то запрос не обновляемый и речи о редактировании идти не может!
Я ответил на ваш вопрос?
Rivkin Dmitry
Дата: 27.05.2004 11:20:45
Нет! Я может быть чуть не правильно выразился, группировка в том смысле, что есть группы для заполнения, например, номер проекта и в нем заказы. Тогда если он заполняет нужное ему поле - оно не уникальное. Не правда ли?
И как его каждый раз увеличивать на еденичку? Беэ трюков не обойтись...
paparome
Дата: 27.05.2004 11:24:47
| | автор |
| | Беэ трюков не обойтись... |
Это точно - DMax, между прочим, тоже трюк
Да и для справки: У функции DMax есть еще третий параметр (условие)
Надеюсь, дальше расказывать не надо?