|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Проблема в следующем. В форме, в вычисляемом поле определяю следующее по возрастанию значение поля, типа: =Max([Order#])+1. Все прекрасно, когда форма работает в обычном режиме, ну а когда использую фильтр - находит и высчитывает, ессественно, только этот данный определеный номер, а не максимальный по всей таблице. Я, конечно, понимаю, что через какое-нибудь событие (КАКОЕ, кстати!!!) надо обратиться к таблице со всем списком существующих номеров, до этого времени удавалось обходиться без собственных функций и процедур. Как это делается представляю весьма туманно. Времени - в обрез. Кто чем может, буду признательна. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 10:45 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Предлагаю (правда сам не проверил) для поля "Очередной номер" использовать непример контрол Список, а в источник данных ему написать запрос с Max к таблице с номерами... ну и + 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 11:38 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Посмотри ф-ию DMAX. Замени ею свой MAX и все будет хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 12:05 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Для формы на основании таблицы 'ИнвНомерТехники' Private Sub Form_Current() ' Текущая запись If NewRecord Then ИнвНомер.DefaultValue = DMax("[ИнвНомер]", "ИнвНомерТехники") + 1 Else ИнвНомер.DefaultValue = "" End If End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 12:59 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Лебедеву: DMax("[ИнвНомер]", "ИнвНомерТехники") + 1 на current для многопользовательской не подходит абсолютно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 16:48 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Спасибо всем! Щас буду пробовать. Если что, вернусь:). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 20:20 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
(Михаилу Лебедеву) Огромнейшее спасибо! Решила сразу две головные боли:) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 00:04 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
А в чем проблема в использованиии AutoNumber? Весь мир ошибся что-ли, создавая и используя этот формат?! Причем в Access он более гибкий чем где либо! И по порядку, и по рандому! Так почему вдруг нужно решение без AutoNumber? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 15:30 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
>mahoune предположим 1 пользователь начинает делать новую запись. что дает счетчик? =1. первый пользователь продолжает набирать строку не сохраняя ее. в это время другой пользователь обращается к этой же таблице. у него счетчик покажет при вводе новой строки тоже 1. первый пользователь наконец сохраняет запись. она попадает в таблицу со счетчиком=1. теперь, если второй пользователь попытается сохранить свою запись, то аксесс ругнется, скажет, что нарушена уникальность. поэтому пользоваться autonumber нельзя. приходится генерировать свой ключ. dmax на событие "до обновления" формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 15:42 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Может оно конечно и так! Но! Как я понял из Ваших суждений - у Вас от кудато с неба взялся ID записи, хотя в таблицу он еще не попал! А на сколько я вообще понимаю, ID присвоится именно в тот момент, когда запись будет добавлен в таблицу! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 15:51 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
в mdb файле значение счетчика появляется в момент ввода первого символа в запись. это придумал не я, это так работает аксесс. в adp по-другому, там действительно присваивается очередной максимальный номер при попадании записи в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 16:24 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Тогда сори! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 16:48 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
To: ДиД "DMax("[ИнвНомер]", "ИнвНомерТехники") + 1 на current для многопользовательской не подходит абсолютно." А что подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2002, 04:19 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Не знаю, правильно ли я поступаю, но делаю так .Execute("INSERT.....") или .Execute("UPDATE.....") с передаваемыми параметрами, которые вводятся в отдельных текстовых полях. В них же отображаются значения полей текущей записи при перемещениях по записям. Таким образом я могу их редактировать. И вроде с AutoNumber нет проблем, и блокировки сводятся к минимуму. Помоему так. Да и вроде как все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2002, 13:31 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Открыл два сеанса одной и той же БД. Открыл одну и ту же форму. В обоих сеансах начал заносить новую запись. В первом сеансе получил ID=1200. Во втором сеансе получил ID=1201. Закончил заносить запись в первом сеансе (ID=1200) Закончил заносить запись во втором сеансе (ID=1201) Никаких проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2002, 09:31 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Признаю свою ошибку. Просто в свое время, работая на А97, были конфликты записей, как я описывал выше. После этого ни разу не проверял: ни на А2000, ни на А2002. Сейчас проверил на А2002. Работает корректно. Еще раз прошу меня извинить. Старею. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2002, 10:03 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
"... To: ДиД "DMax("[ИнвНомер]", "ИнвНомерТехники") + 1 на current для многопользовательской не подходит абсолютно." А что подойдет?..." (Просто логически рассуждая) Если повесить этот код на событие не Form_Current, а Form_BeforeUpdate (до обновления), тогда номер пересчитается непосредственно перед сохранением новой записи. (Ведь кто-то из пользователей все равно первым сохранит запись? Значит для следующего пользователя эта новая запись и будет большей.) Только не надо забывать про NewRecord. А то при любом изменении любой записи (не новой) будет пересчитываться номер короче: Private Sub Form_BeforeUpdate(Cancel As Integer) If NewRecord Then ИнвНомер.Value = DMax("[ИнвНомер]", "ИнвНомерТехники") + 1 End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2002, 10:22 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
Просто для информации. У меня - 97 (SP-2). Так что эта ошибка (dj всяком случае - у меня) и в 97-м исправлена. Я был на форуме по А... на MSA.KM.ru (кажется - так), где были Силыч и др. У меня этот форум не загружается. Может подскажешь, что там такое случилось? Или это у меня глюки? Я - ЛМВ. СПАСИБО за инф. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2002, 10:31 |
|
Определение следующего по порядку номера без использования формата AutoNumber
|
|||
---|---|---|---|
#18+
на событие "до обновления" я согласен. так у меня и построено. только небольшая поправочка к твоему коду If NewRecord Then ИнвНомер.Value = nz(DMax("[ИнвНомер]", "ИнвНомерТехники"),0) + 1 а сайт перехал на www.hiprog.com ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2002, 10:40 |
|
|
start [/forum/moderation_log.php?user_name=Nata]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 441ms |
total: | 579ms |
0 / 0 |