powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / правильно ли я делаю? (нужен id после того,как я добавлю)
19 сообщений из 19, страница 1 из 1
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667285
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть форма для добавления новых клиентов и мне нужен id после того,как я добавлю
Во время добавления ,пока я не закрыл форму этот id равен 0 и мне ничего не приходится,как делать такое:
Select max(id_cl) from cl where name=" &namecl
после чего я его могу использовать-это неправильно?
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667316
DLM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLM
Гость
не знаю правильно это или нет, но я тоже так делаю и все работает :)
разве что кто-нибудь предложит другой способ...
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667323
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО - не совсем правильно

Если id не является счетчиком, то могут быть проблемы при одновременной работе нескольких пользователей!

А вот если id счетчик, то так делать тем более не правильно!
Причем, если id счетчик, то он уже имеет значение в процессе редектирования записи (что легко проверить создав таблицу со счетчиком и повводив в нее записи в режиме таблицы)
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667734
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Поддерживаю paparome, только более категорично.
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667781
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тебе надо получить ID последней записи (без разницы в какую таблицу она добавлялась), то в AccessXP-2003 можно юзать след. вариант:

Код: plaintext
1.
2.
3.
 
 dim rst as DAO.Recordset
 set rst = CurrentDb.Openrecordset("SELECT @@Identity as LastID")
 IDPoslednejDobavlenoiZapisi = rst!LastID
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667824
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MPoilУ меня есть форма для добавления новых клиентов и мне нужен id после того,как я добавлю
Во время добавления, пока я не закрыл форму этот id равен 0 ...
Извините, но этого же не может быть ...
Этого значения либо нет, либо вы можете получить его сразу после того, как только внесены какие либо изменения в запись ...
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667842
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge GavrilovЭтого значения либо нет, либо вы можете получить его сразу после того, как только внесены какие либо изменения в запись ...
Не знаю, это ли имелось в виду, но сегодня получил вот такую ошибку (A2003, ADP):

Run-time error '31004'

Значение поля счетчика невозможно извлечь до сохранения записи.

Сначала сохраните запись, содержащую поле счетчика, а затем выполните нужное действие.


на строке

If IsNull(DLookup("KeyField", "dTMC", "KeyField<>" & Me.пКлюч.Value & " And NameDic='" & Me.пПолнНаим & "'")) Then

при обработке BeforeUpdate новой записи. Искать, почему я ее встретил впервые, я не стал, просто обошел эту ситуацию, но момент забавный.
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667845
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А впервые встретил потому, что в a2002 этой ошибки нет, оказывается... Наверное, не стоит просто так читать поле счетчика вновь добавляемой записи, раз для таких ситуаций ошибку завели (это так, мысли вслух).
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667924
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА впервые встретил потому, что в a2002 этой ошибки нет, оказывается... Наверное, не стоит просто так читать поле счетчика вновь добавляемой записи, раз для таких ситуаций ошибку завели (это так, мысли вслух).
Да, пора как-то отделять работу mdb и adp. К сожалению авторы вопросов не всегда указывают с чем они работают. Мой ответ касался mdb. Если бы автор указал, что работает с adp, я бы не сунулся, так как имею недостаточный опыт работы с adp. Но различное поведение форм adp и mdb очевидно, достаточно создать форму на основе таблицы с ключевым полем и видно, что в mdb значение счетчика устанавливается сразу при изменении новой записи, в adp же это не происходит.
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32667941
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoА впервые встретил потому, что в a2002 этой ошибки нет, оказывается... Наверное, не стоит просто так читать поле счетчика вновь добавляемой записи, раз для таких ситуаций ошибку завели (это так, мысли вслух).

вероятнее всего в 2003 уже произошел Begin Tran (явный) к этому моменту.
точное отличие поведений должно зависеть а) от заявленного для соединения уровня изоляции б) заказа для соединения режима transaction autocommit б.1) явного использования/неиспользования begin tran.

ЗЫ
2 Serge Gavrilov
Эхь! кончилазь моя шчастливая жисть...
как хорошо мне жилося без адп...
вот кажется приспичило... влезть... не видно - можно ли плыть и доплывать...

как там неуютно все и раздражает неведанностью коряг.
Ох, - и орать уже хочится - типа ПАМАХИТЕ - токо не знаю как орать - словей нет - одне изумление...
Оно конечно, оторвать бы кому-нибудь что-нибудь за то, что адп придумали, да уж позДно. оно уж есть и говорит скорым языком. - не выдерешь...
Хде тут адп, хто тут адп...

2 Geo
Geo, ты как человек отважный и без тараканов в голове - прошел эту странную дорогу. Видно х тебе орать буду... Кохды словья найдутся...

Ну, да ничаго.
Мы уж - полягоньку, полягоньку, глядишь и выведет, если до того не смоет...
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668261
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это имеет значение,то у меня в adp после того,как переключаюсь на подформу значение счётчика сразу появляется
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668264
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда переключаешься на подформу, запись в главной сохраняется автоматически. И наоборот, когда выходишь в главную, сохраняется запись подчиненной. Так же, как и в mdb.
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668419
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно это как-нибудь эмитировать,даже если нет подформы? Просто команда сохранить запись почему-то выдаёт ошибку
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668487
DLM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLM
Гость
ну хорошо, тогда такой вопрос
после сохранения новой записи мне нужно определить ид, который она получила, для того чтобы внести его в другую таблицу
как тогда это правильно сделать?
база MySql, Access 2000 mde
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668508
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DLM ну хорошо, тогда такой вопрос
после сохранения новой записи мне нужно определить ид, который она получила, для того чтобы внести его в другую таблицу
как тогда это правильно сделать?
база MySql, Access 2000 mde
Как для MSQL не знаю, но, возможно, тебе поможет поиск по форуму по "@IDENTITY".

MPoilа можно это как-нибудь эмитировать,даже если нет подформы? Просто команда сохранить запись почему-то выдаёт ошибку

Какую ошибку? Имитировать:
docmd.runcommand accmdsaverecord
И в том, и в другом и в третьем случае сохраняется запись. Если выдается ошибка, скорее всего, она будет во всех случаях.
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668513
Наследники OIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это конечно не правильно, если использовать связи с таблицами..
ну а как посоветуте действовать если запись добавляется запросом, причем на форме данные для нескольких связанных таблиц?
я делаю так: (для 2-х тбл.)
id - счетчик, id_2 - число
Код: plaintext
1.
2.
INSERT INTO tbl_1 (id, value) VALUES (id, value);
INSERT INTO tbl_2 (id_2, value_2) VALUES ( (SELECT max(id) FROM tbl_1), value_2);
какие другие варианты?[
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668544
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Наследники OIT

В этом случае нормально, здесь вопрос другой - как извлечь это самое значение id до сохранения записи.

Хотя,
авторSELECT max(id) FROM tbl_1
см. http://www.sql.ru/forum/actualthread.aspx?tid=85209&hl=max+id
или http://www.sql.ru/forum/actualthread.aspx?tid=76944&hl=max+id
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668682
MPoil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется надёжнее использовать вариант select max(id) where какое-то _поле=чему-то.
Потому что,если база многопользовательская то если другой успеет добавить запись до тебя,то ты получишь не свой id,а его?
...
Рейтинг: 0 / 0
правильно ли я делаю? (нужен id после того,как я добавлю)
    #32668731
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MPoilМне кажется надёжнее использовать вариант select max(id) where какое-то _поле=чему-то.
"Какое" и "чему"? id=me.id?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / правильно ли я делаю? (нужен id после того,как я добавлю)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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