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

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

Перекрестный запрос не решает задачу.
...
Рейтинг: 0 / 0
14.02.2018, 12:03
    #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
14.02.2018, 12:16
    #39601697
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
Akina, благодарю.
Я уперся в то, что в форме столбцы автоматом не добавляются.
Использовать отчет или как добавлять столбцы при открытии формы? Даты ведь добавляются.
...
Рейтинг: 0 / 0
14.02.2018, 12:22
    #39601702
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
Умные люди говорят есть какой-то способ "динамически подставлять" данные с столбцы формы. Но как это сделать?
...
Рейтинг: 0 / 0
14.02.2018, 12:30
    #39601708
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
Поиск в форуме по словам "перекрестный отчет" спасёт отца русской демократии...
...
Рейтинг: 0 / 0
14.02.2018, 13:35
    #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
14.02.2018, 13:38
    #39601759
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
quickstarКак сделать так, чтобы переменная intColumnCount должна быть определена на уровне модуля формы?Получи нужное значение отдельным запросом
Код: sql
1.
2.
3.
SELECT COUNT(Занятия.Дата) + 1 AS intColumnCount 
FROM Занятия
GROUP BY Занятия.Дата
...
Рейтинг: 0 / 0
14.02.2018, 13:50
    #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
14.02.2018, 15:58
    #39601879
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
ПЕНСИОНЕРКА, дело в том, что нужно в рамках месяца (заданного периода) смотреть посещаемость, как табель.
...
Рейтинг: 0 / 0
14.02.2018, 16:17
    #39601891
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
quickstarсмотреть посещаемость, как табель.
что вы подразумеваете под этими словами
...
Рейтинг: 0 / 0
14.02.2018, 16:20
    #39601893
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
ПЕНСИОНЕРКА, да, Вы предложили почти то, что нужно.
В идеале, столбцы чтобы были датами и можно было установить период любой. Например, с 10 февраля по 15 марта.
...
Рейтинг: 0 / 0
14.02.2018, 19:28
    #39602003
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
quickstar, не нашёл?

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

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

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

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

ЗЫ: название полей "time", "weekday" и прочее, по мне, так не очень, есть такие функции.
...
Рейтинг: 0 / 0
15.02.2018, 17:13
    #39602524
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
может на что натолкнет:
...
Рейтинг: 0 / 0
18.02.2018, 21:03
    #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
19.02.2018, 04:46
    #39603879
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расписание занятий
quickstarне пойму, почему если вместо столбца id клиента, я ставлю столбец с ФИО буквами, то таблица выводится с пустыми значениями?Я тоже не пойму чего и где ты ставишь. ЕМНИП, никакого id у меня не выводится, сразу идут имена. В коде ничего не меняется (кроме источников данных контролов, оно и понятно), только то что есть в источнике данных для формы - qxtb, то и видим.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Расписание занятий / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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