АвтоНумерация записей в таблице

Alex \V/
Дата: 19.02.2008 05:53:59
Вообщем задача состоит в следущем. В таблице есть разные записи, счетчик_ID при этом random. Как можно автоматически присваивать номера при создании новой записи, чтобы они последовательно один за другим следовали. При чем, если изделие принадлежит к группе А, то нумерация следует по одному циклу, если к группе В, то по другому циклу.

Помогите, пожалуйста.
mds_world
Дата: 19.02.2008 07:48:40
Alex \V/
Вообщем задача состоит в следущем. В таблице есть разные записи, счетчик_ID при этом random. Как можно автоматически присваивать номера при создании новой записи, чтобы они последовательно один за другим следовали. При чем, если изделие принадлежит к группе А, то нумерация следует по одному циклу, если к группе В, то по другому циклу.

Помогите, пожалуйста.
Получить новое уникальное значение номера для каждой группы можно, например так:
Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" tipGruppa) + 1
Здесь переменная tipGruppa в общем случае может быть полем на форме, переменной, функцей. По обстоятельствам. Скажем, в запросе или в свойстве Данные поля нельзя использовать переменную, но можно функцию. Если в тексте программы ВБА, то можно и переменную.
Главное, чтобы в tipGruppa было нужное значение группы.
И еще. Если группа текстовое значение, то tipGruppa следует оконтурить с обоих сторон апострофами.
mds_world
Дата: 19.02.2008 09:48:14
Извиняюсь, забыл добавить символ конкатенации. Надо так:
Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" & tipGruppa) + 1
Ёжик`
Дата: 19.02.2008 10:20:20
Поправлю, на случай отсутствия записей в группе:
nz(Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" & tipGruppa),0) + 1
Alex \V/
Дата: 20.02.2008 08:45:26
Спасибо, фунция хорошая. Но не выходит почему-то с условием.
Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" & tipGruppa) + 1
подмножество "Таблица" у меня - запрос. [ПолеГруппы] принадлежит этому подмножеству
фунция используется при загрузке формы
[номер_сервис_прот] = DMax("[номер_сервис_прот]", "original_copy_garantia","[производитель]=" & "Grundfos") + 1 данное выражение вообще не воспринимается. Пишет ошибку "Run-Time Error '2001' Предыдущая операция прервана пользователем". Если заключить Grundfos в апострофы, то VBA не понимает.
есть другой вариант из help
[номер_сервис_прот] =DMax("[номер_сервис_прот]", "original_copy_garantia", "[производитель] = 'Grundfos'")+1, понимается нормально, но не работает условие.
_restavraciya
Дата: 20.02.2008 08:55:08
манагер ?

Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" & tipGruppa) + 1
в этой строчке ВСЁ понятно ? (кажный символ : зачем и почему)
Alex \V/
Дата: 20.02.2008 09:23:01
_restavraciya
манагер ?

Dmax("ПолеНомера","Таблица","[ПолеГруппы]=" & tipGruppa) + 1
в этой строчке ВСЁ понятно ? (кажный символ : зачем и почему)

Нет, в сервисе инженерю. Ну не очень понятно, если честно.
mds_world
Дата: 20.02.2008 10:05:16
quot Alex \V/,
в запросе "original_copy_garantia" поле [номер_сервис_прот] числовое?
А в поле [производитель] значение 'Grundfos' именно такое или может быть в комбинации с другими символами, типа 'LTD Grundfos'?
Ёжик`
Дата: 20.02.2008 10:22:47
Есть общий счетчик, и счетчик в группе.
Alex \V/
Дата: 20.02.2008 11:09:39
Спасибо, все получилось. Тока все равно не могу врубиться - почему???