Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получение значения AutoNumber добавленной записи / 25 сообщений из 41, страница 1 из 2
20.08.2003, 11:02
    #32241378
GuDVin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
Добавляю запись в таблицу с полем Id(тип AutoNumber) и хочу узнать, как получить значения поля Id добавленной записи?
Использованиt ADO.Record set и Max(Id) нежелательно.
...
Рейтинг: 0 / 0
20.08.2003, 11:04
    #32241388
Vsevolod V
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
Ну что ж... Тогда используй DAO :))
...
Рейтинг: 0 / 0
20.08.2003, 11:10
    #32241407
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
Если вы добавляете запись через recordset, то после addnew вы просто можете считать значение поля со счетчиком
...
Рейтинг: 0 / 0
20.08.2003, 11:11
    #32241410
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
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
20.08.2003, 11:14
    #32241420
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
2 Хам трамвайный
Маленький нюанс - это для SQL Server.
И ещё один - в момент добавления на таблицу "Траты" срабатывает тригер по добавлению записи в другую таблицу - опань-ки - идентити уже не тот:)

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

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

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

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

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

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

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

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

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

2. За время от добавки записи до получения Last (или Max) другой юзер может создать еще одну запись, и тогда будет получен его ID, а не наш.
...
Рейтинг: 0 / 0
20.08.2003, 15:25
    #32242005
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
значит перд инсертом блокировать таблицу
инсерт
вопрошать
разблокировать
но.... если есть строки отличающиеся только Id'ом то только через рекордсет
...
Рейтинг: 0 / 0
20.08.2003, 15:32
    #32242023
iska
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
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
20.08.2003, 15:37
    #32242034
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
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
20.08.2003, 15:46
    #32242045
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
это я погорячилась наверное
может Last в запросе таки правильно работает в отличии от DLast

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

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

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

А зачем, решать не мне :-)
...
Рейтинг: 0 / 0
20.08.2003, 16:14
    #32242107
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
а на каком количестве записей игрался? И в каком Акксесе?
а вот это
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
20.08.2003, 16:21
    #32242119
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение значения AutoNumber добавленной записи
2Hummer

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

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

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


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