Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252

Нумерация в БД

30.01.2014, 12:38. Показов 7417. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Прошу помочь с таким вопросом: есть БД, в которой нумерация должна вестись следующим образом:

- 3301 - 3899
- 4000 - 4899
- 5000 - 5899
- 13000 - 13899
- 14000 - 14899
и так до 20899

Прилагаю, то что имеется. К сожалению, моих познаий недостаочно ((


Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2014, 12:38
Ответы с готовыми решениями:

Нумерация
Доброго времени суток! У меня такой вот вопрос: Есть допустим несколько начальников смены, у каждого свои задания, которые они выполняют,...

Нумерация
у меня такой вопрос можно ли продолжить нумирацию??? вот у меня поле в котором идет нумирация 12/940 потом в новой записи 12/941 как...

автоматическая нумерация
Можно сделать так чтобы в колонке ID, когда добавляешь новые записи автоматически нумеровалось не 1,2,3 ..., а скажем номер который состоит...

74
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
30.01.2014, 12:46  [ТС]
Вот, полностью то что есть
Вложения
Тип файла: rar db3.rar (129.2 Кб, 24 просмотров)
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
30.01.2014, 12:52
Цитата Сообщение от Panzermensch Посмотреть сообщение
3301 - 3899
- 4000 - 4899
- 5000 - 5899
- 13000 - 13899
- 14000 - 14899
и так до 20899
Цифры зависят от чего?
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
30.01.2014, 12:57  [ТС]
не принципиально, как я понял, лучше бы это бы это был самописный счетчик. А вообще - такая нумерация документов, которые вносятся в БД
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
30.01.2014, 13:01
А какое поле и в какой таблице ставится этот номер. Без этого функцию-нумератор не написать.
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
30.01.2014, 13:04  [ТС]
В прикрепленной БД есть таблица 3301, по идее в ней в поле otpr должна вестись вся нумерация, вторая таблица служит для того чтобы по запросу, оператор мог редактировать суммы в поле ст28. конкретно по тому диапазону, который он набил за день. То есть чтоб он запрашивал для редактирования именно свой диапазон.
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 13:33
Panzermensch - скачайте примерчик вот от сюда БД "Школа-2014"
Откройте БД, форма - Помещения, - Вкладка - Имущество - в поле - Наименование пишете чего надо. при переходе на другое поле в поле - Инв. № автоматом проставляется Номер=последнему занесенному номеру + 1, это если нумерация должна продолжаться вне зависимости от того к какому кабинету наименование имущества относится.
Если же вам нужно, чтобы номер был в зависимости от того в какой записи вы в настоящий момент находитесь и она продолжалась от последней именно в этой записи. то смотрите в прилагаемом примерчике - в событиях поля - Отдых формы ФИО
Ну и естественно нужно смотреть маску ввода поля номера.
Вложения
Тип файла: rar Повторы Дат+Нумерация.rar (22.0 Кб, 30 просмотров)
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
30.01.2014, 13:40  [ТС]
Спасибо, но видимо не совсем мой случай))
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 13:48
Цитата Сообщение от Panzermensch Посмотреть сообщение
...видимо не совсем мой случай...
так проясните, как это по жизни должно прояисходить + архивчик своей БД
0
Эксперт MS Access
2837 / 1378 / 216
Регистрация: 13.05.2011
Сообщений: 4,220
30.01.2014, 13:52
Посмотрите, может это ваш случай. Если нет требований к нумерации, то сделал свою.
Вложения
Тип файла: rar Номер.rar (33.2 Кб, 26 просмотров)
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
30.01.2014, 13:52
Извиняюсь, архивчик просмотрел, а нумерация в ГДЕ нумеруется, не нйду чёйта
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
30.01.2014, 13:57
Предполагается
1. Нумерация таблицы 3301, поле otpr - уникальный индекс (понадобится для уникальности номеров)
2. Таблица Диапазоны с Вашими диапазонами номеров.
3. Тогда такая функция дает следующий номер из заданных диапазонов
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Function NN() As Long
Dim RN, RD As Recordset
Dim MN1 As Long
    Set RN = CurrentDb.OpenRecordset("SELECT MAX(otpr) AS MN FROM 3301")
    MN1 = RN("MN") + 1
    RN.Close
    Set RD = CurrentDb.OpenRecordset("SELECT * FROM Äèàïàçîíû WHERE " & MN1 & " Between ÍÍ And ÍÊ")
    If Not RD.EOF Then
        NN = MN1
    Else
        Set RD = CurrentDb.OpenRecordset("SELECT TOP 1 ÍÍ FROM Äèàïàçîíû WHERE ÍÍ>=" & MN1 & " ORDER BY ÍÍ")
        NN = RD("ÍÍ")
    End If
    RD.Close
End Function
Вложения
Тип файла: 7z db3.7z (22.8 Кб, 8 просмотров)
1
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
31.01.2014, 07:39  [ТС]
Спасибо!

То что надо )) Вот только как теперь эту функцию прикрутить к коду, чтобы автоматом при вводе данных с формы "vidacha" подставлялись нужные значения?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
31.01.2014, 08:35
Предположительно: в процедуре этой формы Private Sub доб_Click() есть добавление записи в таблицу 3301. Там и используйте: rs("otpr") = NN(). Остальное, связанное с диапазонами, из этой процедуры можно будет удалить. Но придется добавить обработку ошибки (если несколько пользователей займут одинаковый номер) - получать другой номер.
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
31.01.2014, 09:05  [ТС]
Дело в том, что пользователи забивают документы пачками, и нумерация не должна идти вразнобой. То есть: у Иванова 20 документов и значит в таблице должно быть что Иванов 21 числа забил 20 документов с 3415 по 3434, и Петров в этот же день может забивать документы только с номера 3416.

Это было решено в начальной версии, которую я прикрепил в начале темы. Но проблема была с переходом по диапазонам. Пользователь просто указывал количество документов в пачке и в таблице автоматом забивался указанный диапазон. Как теперь совместить? Чтобы бронировался диапазон и переходила нумерация?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
31.01.2014, 09:22
Нумератор есть. Какая разница, сколько номеров нужно сформировать - 1 или 20. А вот непрерывная последовать для конкретного пользователя - это совсем другой вопрос. И в Вашем варианте со счетчиком она не решалась - никто не мешал (если пользователи самостоятельно делали ввод) двум пользователям начать его одновременно и занять значения счетчика вперемежку.

Добавлено через 3 минуты
Цитата Сообщение от Panzermensch Посмотреть сообщение
То есть: у Иванова 20 документов и значит в таблице должно быть что Иванов 21 числа забил 20 документов с 3415 по 3434, и Петров в этот же день может забивать документы только с номера 3416.
А Вот это вообще непонятно - с временами разберитесь: забил - это уже совершенное действие, может забивать - это когда? После того, как Иванов забил, до того, как Иванов забил, после того, как Иванов посчитал документы и проинформировал всех, что документов у него 20?
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
31.01.2014, 09:31  [ТС]
Имеется в виду, что независимо от того оповещает пользователь остальных или нет, он в любое время (когда начинает вводить документы в базу) занимает последовательный промежуток номеров документов.

Добавлено через 4 минуты
думаю, что пока не осилю. Поэтому подскажите пожалуйста: можно ли сделать так чтобы при достижении определнного максимального значения запись в таблицу прекращалась и оставшиеся данные вносились с следующую таблицу.

Поясню: в 1-й таблице возможны значения от 3301 до 3899, во 2-й от 4000 до 4899 и т.д.

Например текущее максимальное значение в первой таблице 3889, пользователь вводит в базу 15 документов. Значит оставшиеся 5 должны записаться уже во 2-й таблице.

Мне пока проще чтобы потом все введенные за месяц данные сливались в одну таблицу. Потому что понятия уже не имею как сделать так, чтобы все писалось в одну таблицу.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
31.01.2014, 09:41
Цитата Сообщение от Panzermensch Посмотреть сообщение
Имеется в виду, что независимо от того оповещает пользователь остальных или нет, он в любое время (когда начинает вводить документы в базу) занимает последовательный промежуток номеров документов.
Сколько этих последовательных номеров будет. Как программа об этом узнает, чтобы другие пользователи получили номера после его последнего? Вы процесс представьте полностью и опишите. Зачем вообще нужна эта последовательная нумерация для каждого пользователя в течении дня? Пока просматривается единственный вариант - в течении дня номера не занимаются, а в конце дня, когда работа закончена, нумеруются все документы дня.
0
0 / 0 / 4
Регистрация: 12.11.2013
Сообщений: 252
31.01.2014, 09:50  [ТС]
Сколько будет номеров неизвестно. Оператор каждый раз получает разное количество документов. Мое видение - что при начале работы пользователь сразу указывает количество документов и в таблице БД сразу добавляется указанное количество записей. После этого он открывает введенные им записи и редактирует суммы. В моем примере в начале темы как раз так и сделано.

Последовательная нумерация нужна - потому что это сам процесс обработки документов такой - определенная нумерация, строго по пачкам, то есть если есть на руках у оператора 10 документов то в БД должно отобразиться Иванов 1,2,3,4,5,6,7,8,9,10, а Петров 11,12,13,14,15. Все строго последовательно.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
31.01.2014, 10:01
Цитата Сообщение от Panzermensch Посмотреть сообщение
Иванов 1,2,3,4,5,6,7,8,9,10, а Петров 11,12,13,14,15
А почему не так:
Петров 1,2,3,4,5,6,7,8,9,10, а Иванов 11,12,13,14,15? Есть наработанные схемы решения подобных задач. Вы от них отмахиваетесь. Что будет в Вашей схеме, если оператору в обед дадут еще несколько документов, из-за того, что другой оператор заболел, например. Что будет, если документ нужно удалить, и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2014, 10:01
Помогаю со студенческими работами здесь

Нумерация строк
Доброй ночи всем, кто не спит! Подскажите, как сделать нумерацию строк, чтобы по умолчанию новая строчка имела последующий номер. т.е....

Нумерация в отчете
Добрый день! Уважаемые "Сансеи", в отчете для нумерации записей по порядку я использовал код (=" " & & " ")....

Последовательная нумерация
Добрый вечер, уважаемые программисты, подскажите каким образом реализовать последовательную нумерацию строк в форме. К примеру есть одна...

Нумерация по порядку (не Счетчик)
Приветствую, Уважаемый форумчане! Пожалуйста, помогите советом! Вроде все просто, но, к своему удивлению, сделать не получилось :-( ...

Нумерация строк в запросе
Всем привет! Подскажите, нужно чтобы нумерация была у таблицы, не получается, делаю так: SELECT ROW_NUMBER() OVER(ORDER BY fio)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru