2010-11-01 6 views
0

Я планирую создать простую форму службы поддержки. Один из необходимых ему атрибутов - это уникальный номер.генерация идентификатора клиента: префикс с альфа-символами

Как создать уникальный идентификатор, начиная с строки? Пример: KL0001 и KL0002

Это должно быть уникальное число.

+1

Является ли «KL» частью всегда одинаковой? – dotariel

+0

да это действительно – Chris

+4

«KL» применяется ко каждому идентификатору клиента? Если да, зачем вам его хранить? Вы больше не сохранили бы имя поля в самом поле, поэтому зачем хранить что-то одно и то же для каждой отдельной записи? Он выглядит как проблема уровня презентации, и вы можете включить его в свои распечатки и, возможно, в формы, но, похоже, нет необходимости его хранить. И если это имело какой-то смысл, оно не должно храниться в том же поле с номером, так или иначе ... –

ответ

1

Вы можете использовать стандартное поле AutoNumber для хранения числовой части, а затем отдельный вычисленный столбец, который форматирует префикс результата «KL» и заполняет поле AutoNumber необходимыми нулями.

Пример:

SELECT "KL" & Fmt(autonum_field, "0000") AS unique_identifier 
FROM YourTable; 
+0

Я бы не использовал поле Autonumber, потому что, если пользователь начинает вводить запись, а затем отменяет значение автонабора, «потеряно». –

+0

Следует надеяться, что это сработает, но на протяжении многих лет я видел любое количество сообщений, в которых автономер становится доступным пользователям/руководству, и он внезапно начинает понимать что-то, и с этого момента жизнь становится сложной. Как правило, autonumbers/суррогатные ключи не должны отображаться пользователям: http://www.mvps.org/access/tencommandments.htm – Fionnuala

+0

@Remou - Я не согласен с вами. Тем не менее, я стараюсь не вводить сложность в чужой дизайн, если неясно, требуется ли это для него. Я тоже уклоняюсь от использования суррогатных ключей, но опять же, я тоже уклоняюсь от использования Access;) – dotariel

0

Проблема с использованием Autonumber, помимо всего прочего, если кто-то начинает входить в рекорд AutoNumber назначен. Затем, если пользователь отменяет добавление записи, значение autonumber будет потеряно. Поэтому вам лучше подождать, пока пользователь завершит ввод записи, а в форме AfterInsert событие запустит код в соответствии со следующей статьей KB.

ACC2000: How to Create a Multiuser Custom Counter

Это сказал я по-прежнему использовать поле счетчика в таблице так, что легче работать с детьми-таблиц.

+0

Да, ОП не указал числа, необходимые для последовательного. Но по моему опыту, как только кому-то нужна пользовательская последовательность нумерации, все они нуждаются в решении без пробелов. Счетчики бобов, как бухгалтеры, действительно так. Таким образом, нам также необходимо начать думать о том, чтобы помечать транзакцию как удаленную или неактивную, а не удалять запись. –

+0

Это может быть требование правительства, которое, скажем, счета-фактуры, должно быть последовательным и что любые пробелы должны быть оправданы. В бумажные дни часто приходилось неправильно вводить счета-фактуры. – Fionnuala

+2

В ОП указано только уникальное значение. Вы считаете, что это требование правительства. Что, если это требование для базы данных фильмов? Имеются ли пробелы? – dotariel

Смежные вопросы