|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Помогите справиться с такой проблемой. В окне Access создана ленточная форма с таблицей (в таблице присутствует поле типа "Счетчик"). При открытии окна, вызывается Recordset.AddNew для того чтобы курсор встал на новую запись (чтобы пользователь сразу смог начать вводить данные, не кликая по новой сточке), чисто для удобства пользователя. Но в этом случае, при каждом открытии окна (при каждом вызове Recordset.AddNew) увеличивается значение поля "Счетчик", несмотря на то, что никакие данные так и небыли введены вообще, и новая строчка в БД не записывается. А каждая реальная новая запись в таблицу имеет номер ("счетчик") на несколько единиц больше, чем должно было бы быть (1, 3, 7, 10, 12, 15 и т.п.). Нужно чтобы "счетчик" не насчитывал лишнего. Либо отказаться от Recordset.AddNew взамен другого метода установки курсора на новую запись (пока не нашел других способов), либо как-то исключить запоминание счетчика пока не будут введены какие либо данные в таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2016, 23:47 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Инкрементное поле в БД не берет перед тобой обязательств быть непрерывным. При откате транзакции по другой причине там тоже могут образовываться промежутки. Если обязательно нужна непрерывная последовательность, используй Max(MyField)+1 или другие способы. Модератор: Тема перенесена из форума "Microsoft Office". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2016, 00:02 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Непрерывная последовательность не обязательна, но хотелось бы сократить количество возможных пропусков к минимуму. Сейчас количество номеров получается более чем в три раза больше, а это мягко говоря через чур. Других вариантов, кроме как не использовать "счетчик", не видно? Shocker.ProMax(MyField)+1Это еще большой вопрос в реализации... ( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2016, 18:59 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Upgrader... отказаться от Recordset.AddNew взамен другого метода установки курсора на новую запись (пока не нашел других способов) ... См. во встроенной справке метод GoToRecord применительно к форме ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2016, 22:41 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Upgrader...Либо отказаться от Recordset.AddNew взамен другого метода установки курсора на новую запись (пока не нашел других способов)....даже GoToRecord? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2016, 00:34 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
sdkuдаже GoToRecord? Да. Дело в том что GoToRecord устанавливает на последнюю строку из числа уже записанных (несмотря на то что прибавляю единицу к общему числу записей, т.е. пытаюсь установить на новую). Но не на новую строку (еще не существующую). Хотя новая строка отображается в форме (а курсор соответственно стоит на предыдущей). Но вот как на нее установить курсор? Не прибегая к Recordset.AddNew. P.S. Специально пробовал устанавливать курсор мышью сам вручную на новую строку, и при этом ничего не записывать. Это не вызывает Recordset.AddNew и не плюсует счетчик. Вот! Но как это сделать программно? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2016, 15:42 |
|
Access, Recordset.AddNew записывает счетчик
|
|||
---|---|---|---|
#18+
Upgradersdkuдаже GoToRecord? Да. Дело в том что GoToRecord устанавливает на последнюю строку из числа уже записанных (несмотря на то что прибавляю единицу к общему числу записей, т.е. пытаюсь установить на новую). Но не на новую строку (еще не существующую). Хотя новая строка отображается в форме (а курсор соответственно стоит на предыдущей). Но вот как на нее установить курсор?Именно с помощью GoToRecord Код: vbnet 1.
.Ведь там все подсказывается само... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2016, 16:33 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1613674]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
14ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
3ms |
others: | 16ms |
total: | 182ms |
0 / 0 |