powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить свободное значение ключа?
11 сообщений из 11, страница 1 из 1
Как получить свободное значение ключа?
    #35969036
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
Есть таблица Access с полями Ключ, ФИО (0001, Иванов Иван Иванович).
Как программно узнать свободное значение ключа? Например значения такие: 0001, 0002, 0004, 0005. При добавлении новой записи, хотелось бы чтобы не к максимальному (0005) прибавить 1 для значения следующей записи, а сначала если есть свободное значение (0003).
Заранее спасибо.
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969061
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в акцессе , только добавление новой записи и выполнения потом запроса примерно такого:

Код: plaintext
SELECT TOP  1  ID FROM TABLE1 ORDER BY ID DESC

ID - поле автоинкремент

ЗЫ
а вообще вам лучше свой синтетический ключ сделать, раз вы такие вопросы задаете. не трогайте поле ключа, он не для целей нумерации документов =)
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969139
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Konst_One, я знаю как определить следующее максимальное значение. Но мне надо сначала определить свободное значение из имеющихся значений (0001, 0002, 0004, 0005).
0003!!!
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969261
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select
  min(t1.id)
from
  table t1
left join table t2 on t2.id = t1.id +  1 
where
  t2.id is null

PS: но так лучше не делать
что произойдет, если сразу несколько пользователей захотят добавить новую запись?
у меня подобные случаи были, полный п...ец

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969583
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot, таблица одна и поле текстовое (хранит коды абонентов: 0001, 0002)
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969600
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда, проектировщик ...
надеюсь хоть добавление/обновление/удаление данных этой таблицы происходит через отдельные команды, тогда еще что-то можно придумать, а если прям в табличной форме, то ковыряться вам с событиями OnRowChange и тп на форме
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969664
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneмда, проектировщик ...
надеюсь хоть добавление/обновление/удаление данных этой таблицы происходит через отдельные команды, тогда еще что-то можно придумать, а если прям в табличной форме, то ковыряться вам с событиями OnRowChange и тп на форме

1) Data1.Recordset.AddNew
2) Data1.Recordset.Update
3) Data1.Recordset.Delete

Этими командами выполняю добавление/обновление/удаление данных.
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969673
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот перед этими действиями и ищите дырки в нумерации по вашему полю в клонированном рекордсете
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969699
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искать дырки с помощью цикла /for next/? А можно получить это значение с помощью запроса?
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969712
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос выше уже вам дали, добавьте туда преобразование своего поля к цифровому типу
...
Рейтинг: 0 / 0
Как получить свободное значение ключа?
    #35969809
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, с помощью этого запроса и получилось.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить свободное значение ключа?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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