powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получение значения AutoNumber добавленной записи
16 сообщений из 41, страница 2 из 2
Получение значения AutoNumber добавленной записи
    #32242167
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот и я о том же
Саныч это был А97 ? и таблица в А97 ?
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242173
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Там, где две строки попали не на свое место, это был Access 2. :^)
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242262
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 вадя
Я в курсе, что для SQL есть @@identity (именно так и пишется, других не знаю) - но в простом мдб на аксесовских табличках это работать не будет - чего, впрочем, никто и не обещал:)
Про тригеры тоже в курсе - как потом и написал, что примеры есть - просто мой ответ это только уточнение к ответу Хам трамвайный.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242519
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Владимир Саныч и TatianaT

Мы, по-моему, о разном говорим...
Я полностью согласен с вами по поводу первичных ключей, сортировки, отсутствия сортировки и т.п.
Разговор только о получении значения из одной (!) последней (по времени)добавленной и незатертой записи, для чего и служит функция Last.
С утра почитал ваши посты. Чтобы подтвердить свою точку зрения:
Забил в цикле в таблицу 100000 записей.
Стирал, добавлял записи, удалял из добавленных и добавлял на их место.
Запрос (SELECT Last(Id) FROM T) ВСЕГДА возвращает значение Id из последней добавленной записи.
Ну такое назначение у функций First и Last.
Если есть пример, когда ф-ция Last не возвращает значение из последней записи, был бы рад получить описание такой ситуации.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242538
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.При работе через ADO можно использовать @@identity для табличек в mdb
2.Все равно работа через рекордсет - самый быстрый вариант
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242540
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
повторяю
в каком Акксесе эксперементировал?
я такое дело очень давно (2,5 года назад) наблюдала в А97 с DLast
на больших обьёмах и когда записи
не подряд а в разнобой были
а с Last вроде проблем не было (не помню просто насчёт Last т.к мне нужно было узнавать из кода, а из кода только DLast)

а вот это
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
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242551
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Hummer
Я в курсе, что для SQL есть @@identity (именно так и пишется, других не знаю) - но в простом мдб на аксесовских табличках это работать не будет

это будет работать, будет...
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242561
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аcc 02, про DLast я и не обмолвился. Нечего обсуждать.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242588
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Артист
Был не прав. Дважды не прав - проверял в DAO - возвращает 0, в ADO - всё работает.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32242769
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Из хелпа:

The First and Last functions are analogous to the MoveFirst and MoveLast methods of a DAO Recordset object. They simply return the value of a specified field in the first or last record, respectively, of the result set returned by a query. Because records are usually returned in no particular order (unless the query includes an ORDER BY clause), the records returned by these functions will be arbitrary.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32243104
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже, я понял, откуда у нашего спора ноги растут...

MORE INFORMATION
The Remarks section of the Help File topic, "First, Last Functions" incorrectly states that unless the query includes and ORDER BY clause, the order of records returned will be arbitrary . The correct information is that the order of records returned by the First() and Last() functions is not affected by the ORDER BY clause .
Источник:
support.microsoft.com/default.aspx?scid=kb;en-us;189391
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32243110
iska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там же:

The First(), Last(), DFirst(), and DLast() functions ignore sort orders and indexes, and primary keys. These functions are intended to return data from the first or last undeleted record entered into the table , not from the first or last record in a given sort order.
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32243149
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Признаю свою неправоту.

Сделал два запроса.

SELECT s FROM a ORDER BY s;

five
four
one
three
two

SELECT Last(s) AS LastOfs FROM b;

five

Люди, пользоваться First и Last опасно, они игнорируют ORDER BY!
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32243154
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но!!! По-прежнему остается проблема с другим юзером, который мог тем временем добавить другую запись (или стереть нашу).
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32258128
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так всётаки по варианту, например который Хам привёл:
Код: plaintext
1.
2.
3.
4.
5.
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

если в многопользовательской базе, то ошибётся @@identity при одновременном INSERTе другого юзера, или она умна, чтоб вернуть тока из своего Connection ??
Ну а как вы предложите при вставке нескольких записей возвратить их несколько ID ??
...
Рейтинг: 0 / 0
Получение значения AutoNumber добавленной записи
    #32258188
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в многопользовательской базе, то ошибётся @@identity при одновременном INSERTе другого юзера, или она умна, чтоб вернуть тока из своего Connection ??
Только из своего.
Ну а как вы предложите при вставке нескольких записей возвратить их несколько ID ??
Я предложу операции вставки проводить через Recordset. Если, конечно, речь идет о mdb.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получение значения AutoNumber добавленной записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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