powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Расписание занятий
18 сообщений из 18, страница 1 из 1
Расписание занятий
    #39601671
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Тема наверняка поднималась, но пройдясь по форумам, я не нашел ответа понятного новичку.

Прошу помочь сделать форму:
столбцы - даты;
строки - это фио ученика;
на пересечении - статус посещения;
В шапке формы: фильтры по периоду и кабинету.

Перекрестный запрос не решает задачу.
...
Рейтинг: 0 / 0
Расписание занятий
    #39601678
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
TRANSFORM First(Занятия.Статус_посещения)
SELECT Занятия.[ФИО ребенка]
FROM (SELECT Занятия.Дата
      FROM Занятия
      GROUP BY Занятия.Дата
     ) AS q1 
LEFT JOIN Занятия ON q1.Дата = Занятия.Дата
GROUP BY Занятия.[ФИО ребенка]
PIVOT q1.Дата;
...
Рейтинг: 0 / 0
Расписание занятий
    #39601697
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, благодарю.
Я уперся в то, что в форме столбцы автоматом не добавляются.
Использовать отчет или как добавлять столбцы при открытии формы? Даты ведь добавляются.
...
Рейтинг: 0 / 0
Расписание занятий
    #39601702
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Умные люди говорят есть какой-то способ "динамически подставлять" данные с столбцы формы. Но как это сделать?
...
Рейтинг: 0 / 0
Расписание занятий
    #39601708
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск в форуме по словам "перекрестный отчет" спасёт отца русской демократии...
...
Рейтинг: 0 / 0
Расписание занятий
    #39601756
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел подробное описание http://www.taurion.ru/access/13/58

Вопрос в том, что в access 2016 не нахожу событий Форматирование (On Format) верхнего колонтитула
acecess ругается на
Private Sub PageHeader()_Format(Cancel As Integer,_FormatCount As Integer)

Как сделать так, чтобы переменная intColumnCount должна быть определена на уровне модуля формы? Т. к. она используется и другими процедурами данной формы.
...
Рейтинг: 0 / 0
Расписание занятий
    #39601759
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarКак сделать так, чтобы переменная intColumnCount должна быть определена на уровне модуля формы?Получи нужное значение отдельным запросом
Код: sql
1.
2.
3.
SELECT COUNT(Занятия.Дата) + 1 AS intColumnCount 
FROM Занятия
GROUP BY Занятия.Дата
...
Рейтинг: 0 / 0
Расписание занятий
    #39601775
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarПерекрестный запрос не решает задачу.

http://www.sql.ru/forum/actualfile.aspx?id=21190320] Приложенный файл (bd.rar - 15Kb)

я скорей всего исходила бы из такого подхода
Код: sql
1.
2.
3.
4.
5.
6.
TRANSFORM Max(Занятия.[Статус_посещения]) AS [p]
SELECT Занятия.[ФИО ребенка], Format([Дата],"yyyy-mm") as месяц
FROM Занятия
GROUP BY Занятия.[ФИО ребенка],Format([Дата],"yyyy-mm")
PIVOT day([Дата])
in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);


ФИО ребенкамесяц12345678910111213141516171819202122232425262728293031Валя2018-02БИван2018-02ББПетя2018-02НБТома2018-02ББ
...
Рейтинг: 0 / 0
Расписание занятий
    #39601879
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, дело в том, что нужно в рамках месяца (заданного периода) смотреть посещаемость, как табель.
...
Рейтинг: 0 / 0
Расписание занятий
    #39601891
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarсмотреть посещаемость, как табель.
что вы подразумеваете под этими словами
...
Рейтинг: 0 / 0
Расписание занятий
    #39601893
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, да, Вы предложили почти то, что нужно.
В идеале, столбцы чтобы были датами и можно было установить период любой. Например, с 10 февраля по 15 марта.
...
Рейтинг: 0 / 0
Расписание занятий
    #39602003
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar, не нашёл?

quickstar, времени у меня маловато, я же говорил.
...
Рейтинг: 0 / 0
Расписание занятий
    #39602011
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarПЕНСИОНЕРКА, да, Вы предложили почти то, что нужно.
В идеале, столбцы чтобы были датами и можно было установить период любой. Например, с 10 февраля по 15 марта.

увы, вы привыкли по-екселевски с размахом столбики клепать( до 1600)
аксесс намного строже(до 255 в таблице/запросе, а в форме еще строже до 55 см максимальной ширины формы/отчетабэто не так уж и много в столбцах)

вариант практически один -- программное формирование отчета в ексель
...
Рейтинг: 0 / 0
Расписание занятий
    #39602024
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, мега-крутое решение! респект и уважуха Вам)
Я понимаю про время. Сколько, я неделю-полторы один бился, вот решил просить помощи, так как голова кипит, а сам не разобрался.
По готовому коду понимание приходит как выстроена логика.

Еще вопрос: как из таблицы t_timesheet сделать вот такое расписание?
При чем в каждой ячейке список учеников на этот день и время + возраст.
Пример: http://prntscr.com/ieqd77
...
Рейтинг: 0 / 0
Расписание занятий
    #39602094
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarкак из таблицы t_timesheet сделать вот такое расписание?теоретически можно и сделать , но не в рамках форума. Простыми запросами тут не решишь проблему, данные нужно будет подготавливать... Придётся решать как быть с проблемами размещения занятий идущих в разное время на одном уровне, распределение учащихся по ячейкам (что цвет обозначает я не понял), количество полей при разной загрузке занятиями идущими одновременно в один день недели и прочее, что не сразу бросилось в глаза. И не имеет значения где эти данные потом представлять.

ЗЫ: название полей "time", "weekday" и прочее, по мне, так не очень, есть такие функции.
...
Рейтинг: 0 / 0
Расписание занятий
    #39602524
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может на что натолкнет:
...
Рейтинг: 0 / 0
Расписание занятий
    #39603761
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, не пойму, почему если вместо столбца id клиента, я ставлю столбец с ФИО буквами, то таблица выводится с пустыми значениями?
Я понимаю, что ограничение это в коде ниже, но не нахожу его.
Предполагал, что тип переменно не соответствует, но гипотеза не подтвердилась.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Private Sub Form_Load()
Dim RST As ADODB.Recordset
Dim i As Long, j As Long, lngFldCount As Long
Dim strFldName As String
Dim dtmDate As Date
On Error Resume Next

dtmDate = Me.Parent.txtEndDate
Set RST = New ADODB.Recordset
    With RST
        .Open "qxtb", CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdStoredProc
        lngFldCount = .Fields.Count - 1
    End With
    For i = Me.Controls.Count - 2 To 0 Step -2
        With Me.Controls(i)
            If .ControlType = acTextBox Then
                If lngFldCount > -1 Then
                        If lngFldCount <= 1 Then
                            strFldName = RST(lngFldCount).Name
                        Else '&#242;&#224;&#234; &#239;&#240;&#232;&#245;&#238;&#228;&#232;&#242;&#241;&#255; &#228;&#229;&#235;&#224;&#242;&#252;, &#239;&#238;&#242;&#238;&#236;&#243;-&#247;&#242;&#238; &#239;&#238;&#235;&#255; &#232;&#228;&#243;&#242; &#226; &#242;&#229;&#234;&#241;&#242;&#238;&#226;&#238;&#233; &#241;&#238;&#240;&#242;&#232;&#240;&#238;&#226;&#234;&#229;
                            strFldName = Format(dtmDate, "dd.mm.yyyy")
                            dtmDate = dtmDate - 1
                        End If
                    .ControlSource = Replace(strFldName, ".", "_")
                    .Controls(0).Caption = strFldName
                    .ColumnWidth = 1134 '-2 - &#239;&#238; &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#254;
'                    .ColumnWidth = 1134 '-2 - &#239;&#238; &#231;&#237;&#224;&#247;&#229;&#237;&#232;&#254;
                    .ColumnHidden = False
                    lngFldCount = lngFldCount - 1
                Else
                    .ControlSource = vbNullString
                    .Controls(0).Caption = " "
                    .ColumnWidth = 0
                    .ColumnHidden = True
                End If
            End If
        End With
    Next i
'&#231;&#224;&#236;&#238;&#240;&#238;&#231;&#232;&#236; &#228;&#226;&#229; &#239;&#229;&#240;&#226;&#251;&#245; &#234;&#238;&#235;&#238;&#237;&#234;&#232;
'Me.Section(0).Controls(2).SetFocus
'DoCmd.RunCommand acCmdFreezeColumn

Set Me.Recordset = RST
Set RST = Nothing
End Sub
...
Рейтинг: 0 / 0
Расписание занятий
    #39603879
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstarне пойму, почему если вместо столбца id клиента, я ставлю столбец с ФИО буквами, то таблица выводится с пустыми значениями?Я тоже не пойму чего и где ты ставишь. ЕМНИП, никакого id у меня не выводится, сразу идут имена. В коде ничего не меняется (кроме источников данных контролов, оно и понятно), только то что есть в источнике данных для формы - qxtb, то и видим.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Расписание занятий
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]