| |
|
|
| |
to: Bruno
(26.11.2009 в 16:29)
|
| | это просто
ведь пользователю без разницы как вы ведете счет в своей базе данных
ему главное то что он видит - давайте его обманем
создадим поле счетчик числовое
а пользователю будем показывать другое текстовое поле в котором пропишем
=right("000000" & [поле счетчик];6)
вот и все | |
| |
| |
| |
|
|
| |
to: Bruno
(26.11.2009 в 16:29)
|
| | сделайте обычный числовой нумератор, при отображении в форме/отчете можно добавлять к нему что угодно
'0000001" & cstr(ID)
или используйте функцию format
format(ID,"0000001#") | |
| |
| |
| |
|
|
| |
to: osmor
(30.07.2009 в 09:02)
|
| | Добрый день,
Как создать счетчик c уникальным номером, нашел в одной из недавних дискуссий (=nz(DMax("DocNum";"tbl1");0)+1). Спасибо авторам за страницу и участникам горячего диспута. А как создать уникальный номер, который бы начинался с шестизначной цифры в форме, к примеру, "000001". Пытался манипулировать c "Input Mask". Может кто-то сталкивался с похожим вопросом. Заранее благодарю. | |
| |
| |
| |
|
|
| |
to: osmor
(29.07.2009 в 11:38)
|
| | Добрый день,
Как создать счетчик c уникальным номером, нашел в одной из недавних дискуссий (=nz(DMax("DocNum";"tbl1");0)+1). Спасибо авторам за страницу и участникам горячего диспута. А как создать уникальный номер, который бы начинался с шестизначной цифры в форме, к примеру, "000001". Пытался манипулировать c "Input Mask". Может кто-то сталкивался с похожим вопросом. Заранее благодарю. | |
| |
| |
| |
|
|
| |
to: sCandal
(29.07.2009 в 10:49)
|
| | Будет время попробую описать вариант. Сейчас некогда | |
| |
| |
| |
|
|
| |
to: Гоблин
(29.07.2009 в 19:47)
|
| | В случае удаления записи прибавляет зараза единицу. |
В смысле если удалить запись которая была уже ранее создана?
Ну так естественно, вопрос о заполнении пропусков должен решаться сначала на уровне "нужно- не нужно", в 90% случаев повторное использование номеров может привести к проблемам.
Для доступа к полю нужно менять свойства Enabled и Locked
Этот пример приемлем только для одно пользовательского режима. | |
| |
| |
| |
|
|
| |
to: sCandal
(29.07.2009 в 10:49)
|
| | Да. Вопрос еще тот.
Osmor - все работает, но есть одно но. В случае удаления записи прибавляет зараза единицу.
Поле заблокировано не зря - это понятно. Но можно ли как-то кодом (нажатием на кнопку) разблокировать его для корректуры?
Типа Доступ - да, Блокировка - нет. Или как-то типа так?
DoCmd Forms![Поле], , , , acПолеEdit
DoCmd Forms![Поле], , , , acПолеReadOnly
Последние две строки неработоспособны, но главное направление. | |
| |
| |
| |
|
|
| |
to: osmor
(29.07.2009 в 11:38)
|
| | спасибо, все заработало!!! | |
| |
| |
| |
 23 Кб. |
|
| |
to: zhebov_andrey
(29.07.2009 в 09:45)
|
| | вероятно нужно заменить "," на ";"
но вообще сложно так сказать...
см пример | |
| |
| |
| |
|
|
| |
to: osmor
(28.07.2009 в 11:49)
|
| | А как все таки можно организовать раздачу порядковых номеров в случае многопользовательской БД? | |
| |
| |
| |
|
|
| |
to: osmor
(28.07.2009 в 15:16)
|
| | И правда Osmor, почему ругается "Ошибка синтаксиса во введенном выражении"??? | |
| |
| |
| |
 42 Кб. |
|
| |
to: Lukas
(28.07.2009 в 21:27)
|
| | Бли-ииин! Виноват дурак исправлюсь.
Не Max у меня а Count!
Эта хрень считает количество строк, а следовательно количество записей. Хотя хрен редьки не слаще, но в начальном положении, когда по умолчанию 0 в номере, берет надежней.
(Программеры, то что это утопия знаю. Но ведь работает.) | |
| |
| |
| |
|
|
| |
to: Гамлет
(28.07.2009 в 20:50)
|
| | База одно-пользовательская. Вероятность стремится к 0.  | |
| |
| |
| |
|
|
| |
to: Гоблин
(28.07.2009 в 15:54)
|
| | автор: osmor (28.07.2009 в 15:16) личное сообщение
Событие "До обновления" в этом поле не будет происходить
Напишите в свойство "Значение по умолчанию" поля "Входящий_№"
=nz(DMax("[Входящий_№]","[Входящие_документы]"),0)+1 |
ИМХО В этом случае пока запись не сохранена, есть вероятность того, что с другого компьютера будет добавлена запись с тем же номером.
Не лучше ли хранить текущий номер в отдельной таблице, который увеличивать на 1 после создания новой записи | |
| |
| |
| |
 37 Кб. |
|
| |
to: osmor
(28.07.2009 в 15:16)
|
| | Та же хрень. Может я чего-то опять не догнал. Пробую по написаному - не получается. Выдает "Задано значение для операции без оператора".
Даю гоблин-вариант: В форму вставь скрытую формочку на групповой запрос по полю с функцией max. Далее по определенному событию (курсор в некоторое поле или еще как-то) обновляй значение в скрытой форме. В поле, где ведется порядковый номер вычисляй очередной. Может неграмотно с точки зрения программирования, но работает безукоризненно.
Вот примерное:
дорабатывай  | |
| |
| |
| |
|
|
| |
to: zhebov_andrey
(28.07.2009 в 14:23)
|
| | Событие "До обновления" в этом поле не будет происходить
Напишите в свойство "Значение по умолчанию" поля "Входящий_№"
=nz(DMax("[Входящий_№]","[Входящие_документы]"),0)+1 | |
| |
| |
| |
|
|
| |
to: zhebov_andrey
(28.07.2009 в 13:15)
|
| | Есть таблица "Входящие_документы", в ней поле "Входящий_№" (числовое), пытаюсь сделать так:
На событие поля "До обновления", пишу
Ме.Входящий_№=nz(DMax("[Входящий_№]","Входящие_документы"),0)+1
...но чет не получается... Help!!!!!!!!!! | |
| |
| |
| |
|
|
| |
to: osmor
(28.07.2009 в 11:49)
|
| | Я делаю базу для секретаря в приемной шефа по учету входящей и исходящей документации, а нумерация нужна чтобы присваивать входящий/исходящий номер документу (потом ставиться штамп на документе и туда вписывается этот номер)... Записи из базы удалятся не будут от начала и до конца года, а в начале нового года будет начата пустая база с единицы... | |
| |
| |
| |
|
|
| |
to: zhebov_andrey
(28.07.2009 в 11:43)
|
| | использовать счетчик для этих целей не рекомендуется.
т.к. очень вероятны пропуски.
в случае если база однопользовательская можно при создании использовать функцию DCount или Dmax для генерации нового номера
Если многопользовательская, то схема должна быть сложнее учитывающая что несколько пользователей могут вводить данные одновременно, а так же кто-то может попытаться отказаться от ввода после начала.
Вообще стоит понять зачем вам нумерация? Так ли вам важно что бы номера шли по порядку? что будет если в последствии запись с каким-то номером будет удалена? | |
| |
| |
| |
|
|
| |
to: osmor
(28.07.2009 в 11:21)
|
| | Мне просто нужно поле, где считались бы номера по порядку 1,2,3 и тд при добавлении новой записи А как сделать поле наподобие счетчика??? | |
| |
| |
| |
|
|
| |
to: zhebov_andrey
(28.07.2009 в 10:13)
|
| | Добавить запросом на добавление запись с нужным значением счетчика
потом ее удалить
дальше записи будут добавляться начиная с добавленной записи
Вообще поле счетчик рекомендуется использовать ТОЛЬКО для создания уникального ключа записи, но ни для чего другого.
Вы похоже пытаетесь возложить на счетчик несвойственные ему функции | |
| |
| |
| |
|
|
| | Как сделать так чтобы счетчик начал отсчет не с 1, а с 600 например???  | |
| |
| |