Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Вот фрагмент отчета за год:

К сообщению приложен файл. Размер - 0Kb
19 апр 07, 16:59    [4043906]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Дык... за прошлый год - 4 записи, а за прошлый месяц около 100
Все это выводится в соответствующих отчетах...
Как это нет данных ?
Дык никак нет. В каких-таких соответсвующих? В той базе, что выложена все запросы работают как написаны.

Записи у вас фильтруются по дате производства.

В запросе "кофейники за прошлый год" 5 записей - потому что у 5-и кофейников дата производства = 2006 год.

А в запросе "неисправности сборки за прошлый год" 0 записей - потому из этих 5 записей за 2006 год НИ ОДНА НЕ ВНЕСЕНА в таблицу "Неисправности сборки" - по которой идет отбор в этом запросе (по связи).

Так что все как заказывали.
19 апр 07, 17:07    [4043970]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Получается, что если есть хоть одна неисправность сборки, то количество кофейников за какой-либо период считается, а если нет, то количество не считается.
Вопрос: почему ?
19 апр 07, 17:18    [4044042]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Я ведь просто считаю сумму чисел в поле 26 - она вроде как не связана с запросом "неисправности сборки за прошлый месяц (год)"
19 апр 07, 17:24    [4044093]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Я ведь просто считаю сумму чисел в поле 26 - она вроде как не связана с запросом "неисправности сборки за прошлый месяц (год)"
Ну как же. Вы считаете сумму в поле отчета, у которого в источнике прямым текстом написан запрос:
SELECT [таб номер сборщика], [описание неисправности], [центр ответственности], COUNT(*) AS N FROM [неисправности сборки за прошлый год] GROUP BY [таб номер сборщика], [описание неисправности], [центр ответственности]
19 апр 07, 17:29    [4044129]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Иными словами, у вас весь этот отчет - это неисправные кофейники. Почему вас это удивило? Это же ваша собственная логика: ведь это поле26 - оно же стоит напротив строки ВИД НЕИСПРАВНОСТИ, по которому вы группируете записи отчета, а в этом самом поле26 вы хотите получить КОЛИЧЕСТВО НЕИСПРАВНОСЕЙ ДАННОГО ВИДА. В этом же суть отчета? Откуда вопросы? ;)
19 апр 07, 17:37    [4044186]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Вот подчиненный отчет (который выводит в строку списки серийных номеров) - тот включает номера ВСЕХ кофейников за указанный период. Ну так у него и источник не зависит от неисправностей - посмотрите, он же сделан просто на одной таблице "кофейники".
19 апр 07, 17:41    [4044222]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Ладно, пойдем другим путем...

При запуске отдельно любого подчиненного отчета выскакивает сообщение "Введите значение параметра:Поле24" Если ввести любое число, то в поле28 появляется число = [количество кофейников за период (сумма полей24)] * [введенное число].
Почему ?
Собственно вопрос такой: почему вообще выскакивает это сообщение ?
19 апр 07, 17:43    [4044234]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Ув. Карфаген! Мы с Вами говорим видимо о разных полях.
Я имею ввиду Поле24 подчиненного отчета, в котором подсчитываем количество кофейников за каждый день и Поле28 подчиненного отчета, в котором подсчитывается сумма значений Поля24.

Просмотрел переписку и понял, что сам внес сумятицу (Простите...):
в 15.58 - "Поле28"
в 17.24 - "Поле26"
в 17.43 - "Поле28"
19 апр 07, 17:51    [4044311]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Если вы хотите получить в заголовке ОТЧЕТА полную сумму значений, которые вычисляются далее в заголовке группы как DCount с условием по группе, то используйте там не SUM, а тот же самый DCount, но без условия, т.е:
=DCount("*","[кофейники за прошлую неделю]","")
19 апр 07, 18:17    [4044479]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Это я про источник контрола [поле28] отчета "кофейники за прошлую неделю 2".
19 апр 07, 18:22    [4044501]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Да, спасибо, я понял, сделал... и ...ура !

Если можно, посмотрите следующее:
В форме вводим даты (пример: 11.04.07 - 13.04.07)
Нажимаем кнопку "С даты по дату"

Должен открыться отчет "кофейники за период"
Но выскакивает ошибка "Слишком мало параметров. Пребуется 2"

Нажимаем несколько раз "End" - отчет открывается, но видимо не выполняется Module4 - в поле "SN" подчиненного отчета не выводятся данные.

Помогите пожалуйста...

К сообщению приложен файл (Kofe.rar - 73Kb) cкачать
19 апр 07, 18:40    [4044603]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Ибо нюанс имеется.

[кофейники за период] - это у вас запрос с параметрами (две даты, запдающие интервал отбора записей). Эти параметры ваш запрос берет из указанных контролов формы. Такой запрос можно открыть для просмотра, либо использовать его в качестве источника формы или отчета. Программно же открыть его тем методом, как у вас, нельзя - так он не найдет параметры.

Варианты обхода:
1. Готовить текст SQL ЦЕЛИКОМ прямо в процедуре - подставляя там параметры на ходу
или
2. Открывать Recordset через метод QueryDef, предваритеьно подставляя в него параметры
или
3. Получать В ЗАПРОСЕ параметры не из формы а в виде возвращаемого ФУНКЦИЕЙ значения.

ИМХО, вам первый вариант понятнее, поскольку в этой функции вы уже ставите подобное условие.
19 апр 07, 19:02    [4044761]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Кстати.

В функцию MyString (по логике использования) приходит значение даты из этого запроса, т.е. вы подставляете условие для одной из дат, попавших в запрос "кофейники за период". Поэтому, если будете собирать в функции весь текст этого запроса, вы можете BETWEEN там не писать, поскольку ваш WHERE, который у вас уже написан, покрывает этот BETWEEN.

Словом, просто делайте там ваш WHERE не для запроса, а прямо для таблицы.
19 апр 07, 19:10    [4044805]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Не могу никак разобраться...

В форуме нашел такое:

Dim db As Database
Dim q As QueryDef
Dim p As Parameter
Dim rs As Recordset
Set db = CurrentDb()
Set q = db.QueryDefs("z_Work_ZA_Dop_Arh")
For Each p In q.Parameters
p.Value = Eval(p.Name)
Next
Set rs = q.OpenRecordset

Подойдет ли мне данный код (если его нормально вставить в мой модуль) ?
20 апр 07, 11:20    [4047173]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
jhvh
Подойдет ли мне данный код (если его нормально вставить в мой модуль)?
Если нормально вставить, то подойдет ;)

Вы решили этим способом делать? Тут дольше разбираться придется. Запросом-то было бы намного проще - у вас же там все уже готово. Всего одно имя таблицы в SQL надо заменить.

Хотя оно полезно, новые знания приобрести ;)
20 апр 07, 13:09    [4048156]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Дело в том, что я не знаю ЧТО, ГДЕ и НА ЧТО нужно менять.
В этом смысле хотелось бы, что бы меня ткнули морд..., в смысле - лицом, в нужное место.

А при таком коде:

Public Function MyString4(dnom As Variant) As Variant

Dim rcs As DAO.Recordset
Dim dbs As DAO.Database
Dim q As QueryDef
Dim p As Parameter
Dim str As String
Dim f As Boolean
f = True
Set dbs = CurrentDb()
Set q = dbs.QueryDefs("[кофейники за период]")
For Each p In q.Parameters
p.Value = Eval(p.Name)
Next
Set rcs = q.OpenRecordset
Do While Not rcs.EOF
If f = True Then
str = str & CStr(rcs.Fields("SN").Value)
f = False
Else
str = str & ", " & CStr(rcs.Fields("SN").Value)
End If
rcs.MoveNext
Loop
MyString4 = str
Set dbs = Nothing
Set rcs = Nothing
End Function

Выдает ошибку "Type mismatch"...
20 апр 07, 13:15    [4048193]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Кстати, подправил код так:

Dim q As DAO.QueryDef
Dim p As DAO.Parameter

Имеем:

К сообщению приложен файл. Размер - 0Kb
20 апр 07, 13:20    [4048237]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
jhvh
Дело в том, что я не знаю ЧТО, ГДЕ и НА ЧТО нужно менять.
Если вопрос стоит настолько радикально, то я настоятельно рекомендую вам не заморачиваться дольше с этим вариантом, и еще раз советую делать через SQL - просто подправить тот вариант, что у вас уже был и работал
Karfaqen
Всего одно имя таблицы в SQL надо заменить
20 апр 07, 13:25    [4048291]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
ПОЖАЛУЙСТА !

Напишите где нужно заменить имя какой таблицы и на что его заменить
20 апр 07, 13:32    [4048359]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Ну ТУПОЙ я в этом деле ...
20 апр 07, 13:33    [4048366]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Я вообще не понимаю, с чего у вас проблема-то возникла - зачем вы вообще функцию MyString взялись менять? Она же собирает строку серийных номеров для указанной даты производства. И какая разница из какого отчета она вызывается?

Это отчет у вас выбирает записи за период. А ваша функция выбирает записи ЗА ОДИН ДЕНЬ - за тот, который ей передали из отчета, причем - из любого отчета. Целую страницу наобсуждали на пустом месте... :)
20 апр 07, 13:42    [4048450]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Используйте везде функцию MyString, прямо в том виде как она написана вот тут

И все дела.
20 апр 07, 13:56    [4048577]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Дело в том, что при изменении в любом отчете (предположим "кофейники за месяц")
=MyString2([Дата производства]) на
=MyString([Дата производства])
у меня не отображаются значения
20 апр 07, 14:42    [4049041]     Ответить | Цитировать Сообщить модератору
 Re: Несколько вопросов о создании отчетов...  [new]
jhvh
Member

Откуда:
Сообщений: 130
Но самое главное, хотелось бы получить ПОДРОБНЫЙ ответ на вопрос от 18.40
Именно КАК сделать это я из Ваших объяснений не понимаю

Вы советуете :
"Варианты обхода:
1. Готовить текст SQL ЦЕЛИКОМ прямо в процедуре - подставляя там параметры на ходу"

Именно в этом и проблема - я не понимаю что и где нужно поменять; и все мои последующие вопросы сводились к решению именно этой проблемы !!!
20 апр 07, 14:48    [4049106]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить