Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
1

Добавить поле из запроса в ленточной форме

29.04.2024, 09:20. Показов 1294. Ответов 38

Author24 — интернет-сервис помощи студентам
Здравствуйте господа хакеры! Спасибо всем, кто откликается. Я думал все уже ушли на пенсию.

ТЗ:

Имеется ленточная форма
Имеется таблица БД

В таблице имеется колонка с датами "12.03.2024" и т д...
Необходимо иметь порядковые числа для каждой даты. То есть необходимо состряпать форму, которая будет иметь поле с порядковым числом, относительно возрастания дат.

По образцу сделал SQL запрос на создание поля с нумерацией вот так:
SQL
1
2
SELECT A.*, (SELECT COUNT(*) FROM БД WHERE A.даты>=даты) AS №пп_sql
FROM БД AS A;
Далее можно как бы оставить как есть и получать необходимую инфу уже в отчёте. Но заказчик хочет видеть цифру для даты в режиме заполнения формы.

То есть если я вывожу поле "№пп_sql" из запроса в форму через конструктор запросов со связкой таблиц, то моя ленточная форма перестаёт быть редактируемой и "добавляемой"

Очень хотим продолжать редактировать свою форму - ленту и на лету видеть поле с порядковым номером даты из запроса...

Надеюсь нормально объяснил... Опыта почти нет
Миниатюры
Добавить поле из запроса в ленточной форме   Добавить поле из запроса в ленточной форме   Добавить поле из запроса в ленточной форме  

Вложения
Тип файла: 7z Демченко Вахты.7z (50.7 Кб, 15 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2024, 09:20
Ответы с готовыми решениями:

Гиперссылки в ленточной форме из полей запроса
Есть ленточная форма, формируемая запросом с полями ФИО, Дата, Дата1, Дата2 и так далее. Можно ли...

Логическое поле на ленточной форме
Добрый день, есть ленточная форма, хочу чтобы при нажатии на логическое поле отрабатывался код If...

Поле со списком в ленточной форме
Добрый день, подскажите плз кто сталкивался: В ленточной форме два поля со списком. Список во...

Поле со списком в ленточной форме (Access2K)
Задача состоит в том чтобы для каждой строки ленточной формы поле со списком заполнялось ...

Функция Count на поле в ленточной форме
Я на форме cсоздал свободное поле и написал =Сount () в итоге посчитал сумма все записи я бы хотел...

38
8876 / 5933 / 585
Регистрация: 27.03.2013
Сообщений: 19,622
30.04.2024, 21:26 21
Author24 — интернет-сервис помощи студентам
stalin-alex, Так, для образца, типа для понимания, как это делается в натуре прикладываю примерный примерчик.
В начале заполняются - Стравочники:
Организация - Форма (Главная)
Подразделения
Должности
Сотрудники
Именно в таком порядке.
После заполнения нужных данных можно будет продолжить по планированию и учету работы сотрудников.
Для примера заполнил данные
Подр. уч. Надежда
Должности данного участка
3 Сотрудника
Миниатюры
Добавить поле из запроса в ленточной форме  
Вложения
Тип файла: zip Вахты-01 (Гл.П,Д,СД,Стат.Таб№,Шт.Расп.Док.).zip (105.5 Кб, 3 просмотров)
1
8876 / 5933 / 585
Регистрация: 27.03.2013
Сообщений: 19,622
03.05.2024, 14:47 22
Эх, ТС похоже забил на свою тему.
Заходит на форум, но молчит как рыба об лед и на вопросы не отвечает.
А то вырисовается такое решение.
Добавить поле из запроса в ленточной форме

Ну да ладно, не буду больше мозг морщить над данной темой.
1
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 03:14  [ТС] 23
VinniPuh, Да. в саму тему давно не заходил. То времени не было продолжать. То занимался оформлением внешнего вида под просьбу заказчика. Да и много пришлось гуглить.

Так, вроде готово как хотел заказчик. VinniPuh, Ваш вариант неплох и профессионально выполнен, но заказчик пожелал сделать максимально приблизительно к его вордовскому файлу...

Eugene-LS,
В общем единственно, что проблемка сейчас новая образовалась. Счётчик Dcount для порядковой нумерации дат, в чём и требовалась автоматизация документа, почему - то дал сбой.

Я забил все данные в в общую БД_ротация (ФИО, должность, дата и т д) и непонятно после какого момента, но многие цифры счётчика удалились.. То есть нет 1,2,3 ... начинается с 6 что ли... Такое ощущение, что в ходе набивки, были удаления записей и вместе с ними удалились цифры счётчика и он продолжил расстановку порядка без этих чисел... Надо бы тут разобраться...

Сам запрос :
SQL
1
2
3
SELECT БД_ротация.*, DCount("*","БД_ротация","Дата_заезд<=" & Format(Nz([Дата_заезд],9999),"\#mm\/dd\/yyyy\#")) AS №пп_sql
FROM БД_ротация
ORDER BY БД_ротация.Должность_заезд;
Почему-то не индексируется. Сделал пробу новой набивки в пустой базе. Там работает переиндексация
Миниатюры
Добавить поле из запроса в ленточной форме  
Вложения
Тип файла: 7z Демченко Вахты3.7z (418.3 Кб, 10 просмотров)
0
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
13.05.2024, 05:29 24
У вас 7 мая 5 заездов, вот вам и показывает 5 строк с одинаковым количеством. В условии идёт подсчёт количества записей меньше или равного 7 мая. Что неправильно? Всё правильно!
1
Заблокирован
13.05.2024, 06:22 25
Цитата Сообщение от stalin-alex Посмотреть сообщение
Надо бы тут разобраться...
Потребуется "костыль" (средней толщины) и большой "пузырь", ибо без него тут не разобраться никак ...

Запрос: "Запрос_ротация" - пока попробуйте так:
SQL
1
2
3
4
5
6
SELECT БД_ротация.*, 
    CLng(DCount("*","БД_ротация",
        "Nz([Дата_заезд],0)+[Код]/86400<" & Format(Nz([Дата_заезд],0)+[Код]/86400,
        "\#mm\/dd\/yyyy hh:nn:ss\#")))+1 AS №пп_sql
FROM БД_ротация
ORDER BY Участки, Код;
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 06:48  [ТС] 26
alvk, Ночью постил. Ошибка форума bad gataway не дала до конца отредактировать пост. Возможно я неверно выразился. Несколько одинаковых дат это так и должно быть. А вот то, что в счётчике пропускаются числа и его работа некорректна - такого не должно быть

Добавлено через 1 минуту
Eugene-LS, сорян не проставил пузырь. Ошибка форума не дала оформить пост нормально. Спасибо. Попробую
0
Заблокирован
13.05.2024, 06:50 27
Цитата Сообщение от stalin-alex Посмотреть сообщение
Ошибка форума
Нет никакой ошибки - ежедневно с 03:00 MSK - форум на обслуживании (прибл. час - не засекал)
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 06:57  [ТС] 28
Eugene-LS, буду знать. Надо заменить ошибку)))
0
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
13.05.2024, 06:59 29
Цитата Сообщение от stalin-alex Посмотреть сообщение
А вот то, что в счётчике пропускаются числа и его работа некорректна - такого не должно быть
Что такое счётчик в вашем понимании и как это поле называется в вашем запросе?
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 07:40  [ТС] 30
alvk,
"Форма_заполнения"
"Запрос_заполнение"

Поле "№пп_sql"

SQL
1
2
3
SELECT БД_ротация.*, DCount("*","БД_ротация","Дата_заезд<=" & Format(Nz([Дата_заезд],9999),"\#mm\/dd\/yyyy\#")) AS №пп_sql
FROM БД_ротация
ORDER BY БД_ротация.Должность_заезд;
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 07:48  [ТС] 31
Eugene-LS,

Пара вопросов:

1. А почему исчезли повторы ? Ведь в принципе они не возбраняются в моём случае. Ибо есть одинаковые даты.
2. Могу ли я добавить сортировку "Должность_заезд" как было в моём примере ночью...Заказчику надо, чтобы должности на каждом участке выстраивались по иерархии сверху вниз...Это как-то влияет на Dcount ?
3. Вы добавили сортировку по участкам. Это почему?
Миниатюры
Добавить поле из запроса в ленточной форме  
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 08:00  [ТС] 32
Пока работает. Но понять бы, что спровоцировало такой сбой? Или с новым запросом уже не должно?
0
Заблокирован
13.05.2024, 08:32 33
Цитата Сообщение от stalin-alex Посмотреть сообщение
01. А почему исчезли повторы ?
Потому что: Nz([Дата_заезд],0)+[Код]/86400

02. Могу ли я добавить сортировку "Должность_заезд" как было в моём примере ночью...
Да.
03. Вы добавили сортировку по участкам. Это почему?
Это был эксперимент - забыл убрать просто.

04. Но понять бы, что спровоцировало такой сбой?
Вам уже ответили (post#24).
Повторяю: Повторение дат.

05. Или с новым запросом уже не должно?
Как говорят врачи: Понаблюдаем ...

Добавлено через 22 минуты
Цитата Сообщение от stalin-alex Посмотреть сообщение
Но понять бы
- "Примеры существуют не того что бы тупо копировать из них код себе, но для вдумчивого изучения со скрупулёзным поиском в интернет всех непонятных словосочетаний (свойств и методов)."
--------------------
© Альберт Эйн-Штейн
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 08:46  [ТС] 34
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Потому что: Nz([Дата_заезд],0)+[Код]/86400
Получается, что теперь вместо повторений для одинаковых дат, будут назначаться +1 порядковые номера, как и для НЕ повторяющихся.. Я правильно понял?
0
Заблокирован
13.05.2024, 08:50 35
Цитата Сообщение от stalin-alex Посмотреть сообщение
Я правильно понял?
Не совсем, но направление мыслей правильное.
1
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
13.05.2024, 10:18 36
Цитата Сообщение от stalin-alex Посмотреть сообщение
Поле "№пп_sql"
Это не счётчик. Счётчик - это поле Код, имеющее тип Счётчик.
Счётчик не допускает повторов.
По поводу повторений в вашем номере, вам нужно просто определиться и озвучить для чего нужно это поле.
Что оно считаете и в разрезе чего?
0
0 / 0 / 0
Регистрация: 13.02.2018
Сообщений: 21
13.05.2024, 10:29  [ТС] 37
alvk, Я его так просто образно называю. Да я знаю про поле "код" и то, что оно индексированное без повторов. На нём и завязана табла.

Там в ТС я описал ТЗ для чего надо... "Пометить числами в порядковой последовательности от меньшей даты к большей" поле таблицы "Дата_заезда"
0
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
13.05.2024, 12:45 38
Цитата Сообщение от stalin-alex Посмотреть сообщение
"Пометить числами в порядковой последовательности от меньшей даты к большей
я вот так вижу:
1. Запрос Источник
T-SQL
1
2
3
4
5
6
7
SELECT (Select Count(*) 
    From (select Дата_заезд from БД_ротация group by Дата_заезд) p 
    Where p.Дата_заезд<= 
     p1.Дата_заезд 
 ) AS НомерПП, p1.Дата_заезд AS Дата1
FROM БД_ротация AS p1
ORDER BY p1.Дата_заезд;
2. Запрос Запрос_Ротация:
T-SQL
1
2
3
 SELECT БД_ротация.*, Источник.НомерПП
FROM БД_ротация LEFT JOIN Источник ON БД_ротация.Дата_заезд = Источник.Дата1
ORDER BY Источник.НомерПП;
Миниатюры
Добавить поле из запроса в ленточной форме  
1
8876 / 5933 / 585
Регистрация: 27.03.2013
Сообщений: 19,622
13.05.2024, 13:28 39
Цитата Сообщение от stalin-alex Посмотреть сообщение
...но заказчик пожелал сделать максимально приблизительно к его вордовскому файлу...
Ну нет так нет, хозяин барин.
Скину пример того что натворил, может пригодится.
Не выкидывать же.
Вложения
Тип файла: zip Вахты-03 (Печать отчета на месяц) А2003 Пример.zip (137.9 Кб, 8 просмотров)
1
13.05.2024, 13:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2024, 13:28
Помогаю со студенческими работами здесь

Свободное OLE поле в ленточной форме
Добрый день! Подскажите, пожалуйста, можно ли сделать следующее: В ленточной форме по запросу...

Применение функции Dsum к ленточной форме на основе запроса
Доброго времени суток заглянувшим! Я к вам с очередным глупым вопросом. :) Возможнo-ли...

Поле со списком в ленточной форме как фильтр
всем привет! вопрос возможно избитый, но по форуму не могу найти. в ленточной форме есть поле со...

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

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


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru