powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получение значения AutoNumber добавленной записи
25 сообщений из 41, страница 1 из 2
Получение значения AutoNumber добавленной записи
    #32241378
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляю запись в таблицу с полем Id(тип AutoNumber) и хочу узнать, как получить значения поля Id добавленной записи?
Использованиt ADO.Record set и Max(Id) нежелательно.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241388
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что ж... Тогда используй DAO :))
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241407
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы добавляете запись через recordset, то после addnew вы просто можете считать значение поля со счетчиком
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241410
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
CurrentProject.Connection.Execute "INSERT INTO Траты ( [Код Клиента], Сумма ) " _
& "values( 1 , 1000)"
rst.Open "SELECT @@identity as dd", CurrentProject.Connection
MsgBox rst!dd
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241420
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Хам трамвайный
Маленький нюанс - это для SQL Server.
И ещё один - в момент добавления на таблицу "Траты" срабатывает тригер по добавлению записи в другую таблицу - опань-ки - идентити уже не тот:)

2 GuDVin
В аксесе делай селект поля autonumber с критериям для добавленной записи.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241428
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Маленький нюанс - это для SQL Server.

Это также работает в mdb с ADO и jet 4

> И ещё один - в момент добавления на таблицу "Траты"
> срабатывает тригер по добавлению записи в другую таблицу
> - опань-ки - идентити уже не тот:)

С этим тоже можно бороться...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241438
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Других вариантов нет?
Просто поиск строки с параметрами добавленной строки может не всегда привести к нужному результату (если есть строки отличающиеся только Id'ом). И MAX не всегда помогает(если запрос на добавление не выполнился)
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241443
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 IgorM
Про mdb честно говоря не знал.
Про бороться-то в курес - есть несколько способов (на этом сайте в FAQ кажется описан) - просто решил, что стоит об этом написать:)
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241447
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To GuDVin
Я вроде сказал другой вариант
...
rs.AddNew
Debug.Print rs!id
...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241482
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, но хотелось обойтись без ADO. Впрочем, вариант интересный... Спасибо...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241494
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вариант Serge Gavrilov работает и в DAO.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241503
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в DAO rs.AddNew никто не отменял
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241511
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по тому, что решение, типа одна строка с какой-нить функцией никто не предлагает, видимо и нет такого счастья...
Все спасибо... Будем юзать ADO.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241520
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиск строки с параметрами добавленной строки может не всегда привести к нужному результату (если есть строки отличающиеся только Id'ом).

сам себе ответил
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241527
GuDVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как же?

Скорее вопрос поставил...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241983
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если

>> GuDVin: Использованиt ADO.Record set и Max(Id) нежелательно

то может быть поможет Last(Id)? Она вроде для того и заточена. Попробовал, работает и при добавлении через запрос и через rst.AddNew...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32241993
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Last плох по двум причинам:

1. В таблице без order by - порядок сортировки не гарантирован. Тогда уже лучше Max.

2. За время от добавки записи до получения Last (или Max) другой юзер может создать еще одну запись, и тогда будет получен его ID, а не наш.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242005
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит перд инсертом блокировать таблицу
инсерт
вопрошать
разблокировать
но.... если есть строки отличающиеся только Id'ом то только через рекордсет
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242023
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Владимир Саныч:

1. А функции Last не по барабану порядок сортировки? Она выбирает последнюю запись в хронолическом порядке.
Хэлп:
You use the First or Last functions to return the first or last record in the group you are performing calculations on. These functions return the first or last record as it was entered in chronological order. Sorting the records has no effect on these functions.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242034
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
You can use the DFirst and DLast functions to return a random record from a particular field in a table or query when you simply need any value from that field. Use the DFirst and DLast functions in a in a macro, module, query expression, or calculated control on a form or report.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242045
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я погорячилась наверное
может Last в запросе таки правильно работает в отличии от DLast

вопрос: зачем плодить записи которые отличаются только AutoNumberом?
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242087
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 TatianaT

Абстрагируясь от вопроса о том, зачем это нужно...

Я попробовал поиграть с Last в запросе и DLast из кода - результат одинаковый, обе функции всегда возвращают данные из последней добавленной записи.

А зачем, решать не мне :-)
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242107
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на каком количестве записей игрался? И в каком Акксесе?
а вот это
You can use the DFirst and DLast functions to return a random record from a particular field in a table or query when you simply need any value from that field. Use the DFirst and DLast functions in a in a macro, module, query expression, or calculated control on a form or report.
взято из хелпа А97

я такое дело очень давно наблюдала в А97 на больших обьёмах и когда записи
не подряд а в разнобой были
а с Last вроде проблем не было


а вопрос зачем плодить записи которые отличаются только AutoNumberом?
был для автора топика
хотя разные ситуации бывают
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242119
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Hummer

для SQL есть @@Identy (если я правильно написал)

а для трггеров применени здесь очень хорошо описано у Senin(a)

поищи по-моему тебе будет в тему
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242152
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 iska:\r
/topic/58
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получение значения AutoNumber добавленной записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]