Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
Делаю БД по делопроизводству (диплом). У некоторых входящих документов имеется по нескольку исполнителей. Проблема в том, что в отчете пишется либо имя только одного исполнителя, либо все, но вместо имен их ID (кто не знает - Коды) из таблицы принадлежности Ф.И.О. к должности работника. Как сделать так, чтобы в отчете выдавались имена вместо цифр + без нулевых (неиспользуемых) ячеек? К преподу бесполезно обращаться, сама дуб дубом. Помогите! Уже всю голову сломала. Схему данных прилагаю, может чем поможет. Жалко саму базу нельзя приложить.
25 апр 07, 20:26    [4070978]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
зоранее благодарень
Member [заблокирован]

Откуда:
Сообщений: 5466
CTY
кто не знает - Коды


можно и базу можно и коды - архивируй и прикладывай
25 апр 07, 20:29    [4070990]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
базу не получится приложить она больше 3 мб в сжатом виде, а коды... как я их приложу? они в таблицах
25 апр 07, 20:31    [4071004]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
трынц-тынц-тынц
Guest
CTY
а коды... как я их приложу? они в таблицах


это что получается - коды у вас в таблицах?

базу можно приложить если ее сначала подчистить - выбросить лишние данные а потом зажать (и еще заархивировать ZIPом)
25 апр 07, 21:50    [4071159]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
проку нет
Guest
1) Коды легко преобразовать в ФИО с помощью DLookup ("ФИО";"Таблица_с_ФИО_Сотрудников";"ID="& ID) прямо в отчете;
2) можно написать фунцию, возвращающую строку с ФИО исполнителей по коду документа. В условиях, когда от вас нет ни схемы, ни базы привожу готовый пример по моей базе (надеюсь разберетесь):
Public Function ListOfManagers(DocCode As Long) As String
'Возвращает строку исполнителей по документу DocCode
Dim S As String
Dim rst As ADODB.Recordset
Dim N As Integer

    N = 0
    Set rst = New ADODB.Recordset
    rst.Open "SELECT Сотрудники.Имя, Документы_Участники.ВидУчастия " & _
    "FROM Сотрудники INNER JOIN Документы_Участники " & _
    "ON Сотрудники.КодСотрудника = Документы_Участники.Исполнитель " & _
    "WHERE Документы_Участники.КодДокумента=" & DocCode, _
    CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
    With rst
        Do Until .EOF
            S = S & !Имя & "(" & !ВидУчастия & "); "
            N = N + 1
            .MoveNext
        Loop
        .Close
    End With
    If Len(S) > 2 Then
        ListOfManagers = N & ": " & Left(S, Len(S) - 2)
    Else
        ListOfManagers = ""
    End If
    Set rst = Nothing
End Function
25 апр 07, 22:41    [4071227]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
трынц-тынц-тынц
это что получается - коды у вас в таблицах?

видимо, вы не о тех кодах думаете, что я имею в виду


проку нет
1) Коды легко преобразовать в ФИО с помощью DLookup ("ФИО";"Таблица_с_ФИО_Сотрудников";"ID="& ID) прямо в отчете;
2) можно написать фунцию, возвращающую строку с ФИО исполнителей по коду документа. В условиях, когда от вас нет ни схемы, ни базы привожу готовый пример по моей базе (надеюсь разберетесь):

спасибо, попробую
26 апр 07, 06:40    [4071588]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
RodionAT
Member

Откуда:
Сообщений: 443
Я так понял, что должна быть связь между таблицами "Документ" - "Исполнители" типа "один-много". Вот и сделайте источник записей отчета - запрос с таким отношением, а в отчете группировку. Ну а в модуле отчета при отсутствии Исполнителей можете написать процедуру, которая гасит секцию записей или группы, смотря что хотите.
Я такую мдб делал, все работало, делопроизводители отказались на ней работать - сказали нафиг нам этот тотальный контроль. Можно было бы сам файл скинуть, но у меня тот HD вылетел, копии не делал, а файл не восстановился.
26 апр 07, 07:47    [4071644]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
Palarm
Member

Откуда:
Сообщений: 1283
А такая пойдет - http://www.accessoft.ru/InstrPro/InstrPro.html
26 апр 07, 08:10    [4071685]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
Palarm
А такая пойдет - http://www.accessoft.ru/InstrPro/InstrPro.html


Здрасти, приехали. Я ж говорю на диплом базу делаю, задание у меня такое - самой сделать.
26 апр 07, 13:46    [4073805]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
вот база, заранее благодарю за советы по ней

К сообщению приложен файл (БД Делопроизводство.rar - 85Kb) cкачать
26 апр 07, 17:29    [4075498]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
CTY
Как сделать так, чтобы в отчете выдавались имена вместо цифр + без нулевых (неиспользуемых) ячеек?
При таком раскладе как у вас, проще списки сделать вместо простых полей. (см. отчет Входящая корреспонденция)

CTY
заранее благодарю за советы по ней
Зря исполнители сделаны "вширь". Надо было делать отдельную таблицу (код_документа+код_исполнителя). Более структурно и экономно - в смысле "лишних нулей", которые потом еще и скрыть хочется. Остальное не смотрел.

К сообщению приложен файл (БД Делопроизводство.rar - 43Kb) cкачать
26 апр 07, 18:14    [4075778]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
RodionAT
Member

Откуда:
Сообщений: 443
Посмотрел Вашу базу и честно говоря - удивился. Извините меня, но это неэффективно.Я по памяти приведу структуру таблиц и связей для базы, которую сам делал.
Таблица Сотрудники[КодСотрудника, ФИО, КодДолжности, ДатаВступленияВДолжность, ДатаОставленияДолжности]
Таблица Должности[КодДолжности,Название]
Таблица Документы [КодДокумента, ВидДокумента, ДатаАктуализации, ДатаПодписания, КодЭмитента, ФайлДокумента, Тема, КраткоеСодержание]
Таблица Рассылка [КодДокумента, КодСотрудника]

Связи: Сотрудники-Должности (по КодДолжности; один-один)
Документы-Сотрудники( по КодСотрудника с КодЭмитента;один-один)
Документы-Рассылка( по КодДокумента;один-много)
27 апр 07, 07:36    [4076832]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
RodionAT
Посмотрел Вашу базу и честно говоря - удивился. Извините меня, но это неэффективно.

Что именно вы считаете неэффективным?
27 апр 07, 22:14    [4081615]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
RodionAT
Member

Откуда:
Сообщений: 443
CTY
RodionAT
Посмотрел Вашу базу и честно говоря - удивился. Извините меня, но это неэффективно.

Что именно вы считаете неэффективным?

1. Таблица "Приказы_с" и "Распоряжения" идентичны по структуре и обычно их объединяют в одну, но вводят дополнительное поле ТипДокумента (Приказ, Распоряжение). Потом на форме фильтром отбирать документы одного типа - одно удовольствие. Да и возможность расширить количество типов документов появляется. Не нужно создавать под новый вид документа новую таблицу, форму, позицию меню и т.д.
2. Список должностей ректората и исполнителей я бы тоже объединил в одну таблицу, тем более у вас данные в них перехлестываются, т.е. увеличивается объем вносимых данных.
3. Ну и таблицы ФИО исполнителей и ректората тоже объединил бы. Как дополнение- получили список всего персонала.
4. Ну и табличку исполнителей к документу тоже сделал бы - вдруг возникнет ситуация когда исполнителей у документа будет не один, а 2, 3, ...
28 апр 07, 07:49    [4082118]     Ответить | Цитировать Сообщить модератору
 Re: БД по делопроизводству - один документ и несколько исполнителей  [new]
CTY
Member

Откуда:
Сообщений: 8
2 RodionAT. Спасибо, буду думать... мне тут еще много над чем думать надо :)
Спасибо всем за советы, некоторые очень помогли.
28 апр 07, 18:11    [4085195]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить