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

База данных "Библиотека"

24.02.2017, 23:16. Показов 7133. Ответов 67
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Опять обращаюсь к Вам форумчане за помощью. Продолжаю работать над своей БД-создал необходимые формы и отчеты. Но форму Фильтр3 пока доработать не получается. Не работают кнопки "Выдано" и "Возвращено",которые отбираются по дате возврата книги.
Кнопка "Выдано"должна отбирать все даты с открытой датой возврата,а кнопка "Возвращено" -с закрытой датой возврата.
И второе-как можно при выборе параметров на форме открывать четыре разных отчета-если выбор по автору-то отчет открывается с группировкой возврат по автору.,если выбор почитателю-то отчет открывается с группировкой по читателю и так же по названию книги. В БД на главной форме -Форма Фильтр3 и отчеты рядом.
Вложения
Тип файла: rar Библиотека.rar (6.50 Мб, 256 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2017, 23:16
Ответы с готовыми решениями:

База данных «Библиотека»
Пожалуйста,помогите!Есть БД бибилиотека Читатель : (ФИО, адрес, № чит. билета); Книги:ID...

База данных - Библиотека
База данных "Библиотека" должна хранить следующую информацию: 1)Фамилия, Имя, Отчество читателя....

база данных библиотека
здравствуйте! помогите пожалуйста с созданием база данных библиотеки нужно чтобы была...

База данных - Библиотека
Добрый день. Есть такое вот задание: Предметная область - библиотека. Решаемые задачи: выдача...

База данных БИБЛИОТЕКА
Помогите пожалуйста, нужна база данных БИБЛИОТЕКА по этому примеру библиотека paсполагает фондом...

67
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.02.2017, 02:12 2
С выбором отчета не понял. Нужно разные отчеты вызывать? А если выбор по автору, читателю и книге одновременно? Уточняйте.

Форму Фильтр3 переделал. Вместо макроса на кнопке Применить фильтр работает процедура в коде ВБА. Также изменил 3 поля со списком, вставил первым столбцом код. Это удобнее.
Чтобы форма не моргала, уменьшил границу группы (моргание ее происки) и сделал ее невидимой. И добавил прямоугольник вместо границы группы. Теперь моргает значительно меньше.

Добавил поле КодЧитателя в источник отчета ВозвратыКниг. Иначе сложнее фильтровать по нему.
Вложения
Тип файла: rar Библиотека.rar (6.51 Мб, 241 просмотров)
1
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
25.02.2017, 09:37  [ТС] 3
Спасибо Вам,mobil, за помощь.Вы наверное поняли,что моя БД не совершенство,я сам учусь создавать по разным источникам -читаю литературу,смотрю разные примеры и что то еще не до понимаю,особенно не хватает знаний в Visual basic. Вот и с отчетами-мне хочется понять как можно вызывать разные отчеты,если выбираю разные параметры на форме. По сути согласен-отчет один и тот же-только задаются разные группировки. Подобных примеров не нашел.Если покажете как это делается-буду благодарен Вам.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.02.2017, 12:12 4
Лучший ответ Сообщение было отмечено kos-625 как решение

Решение

Цитата Сообщение от kos-625 Посмотреть сообщение
Вот и с отчетами-мне хочется понять как можно вызывать разные отчеты,если выбираю разные параметры на форме.
kos-625, Вы не ответили на вопрос какая группировка должна быть если выбрано несколько параметров: автор, читатель, книга, раздел в любом наборе. Если скажем укажете старшинство параметров, то в принципе несложно. Например по убывающей: Читатель, Автор, Книга, Раздел. Тогда процедура может быть такая
Visual Basic
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
Private Sub Кнопка33_Click()
    Dim vib, kniga, avtor, chit, razdel, s, rpt
    Select Case Me.ВыборКниг
        Case 2: vib = " and ДатаВозврата is null "
        Case 3: vib = " and not ДатаВозврата is null "
        Case Else: vib = ""
    End Select
    
    If Me.ВыборНазвания & "" = "" Then kniga = "" Else kniga = " and КодКниги=" & Me.ВыборНазвания
    If Me.ВыборАвтор & "" = "" Then avtor = "" Else avtor = " and КодАвтора=" & ВыборАвтор
    If Me.ВыборЧитатель & "" = "" Then chit = "" Else chit = " and КодЧитателя=" & ВыборЧитатель
    If Me.ВыборРаздел & "" = "" Then razdel = "" Else razdel = " and Раздел='" & ВыборРаздел & "'"
    s = "true " & vib & kniga & avtor & chit & razdel
    
    'Блок выбора отчета 
    If Me.ВыборЧитатель & "" <> "" Then
        rpt = "ВозвратПоЧитателю"
    ElseIf Me.ВыборАвтор & "" <> "" Then
        rpt = "ВозвратПоАвтору"
    ElseIf Me.ВыборНазвания & "" <> "" Then
        rpt = "ВозвратПоКниге"
    Else
        rpt = "ВозвратыКниг"
    End If
    DoCmd.OpenReport rpt, acViewReport, , s
End Sub
Но нужно в источник всех отчетов, кроме ВозвратКниг, добавить поле КодАвтора. В ВозвратКниг добавлено ранее.
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
25.02.2017, 20:59  [ТС] 5
Спасибо! Я "проэксперементирую" свою форму с выбором отчетов-может тогда точнее определюсь как лучше сделать просмотр своих отчетов.
А что я сделал не так на форме Фильтр3,у меня появляется звездочка в окошке Раздел,после того как нажимаю на кнопку Очистить?

Добавлено через 2 часа 1 минуту
Спасибо,все работает как хотелось мне.Только еще как дописать в коде,если данные не выбрались и отчет пустой не "выскакивал". Я прописал сообщение,что отчет не будет создан. Сообщение появляется-но пустой отчет пытался через этот же макрос прописать-выдает ошибку.

Добавлено через 6 часов 25 минут
Ошибку на форме Фильтр3 нашел- в окошке "Раздел"появлялась звездочка-ошибка была в макросе.
А вот чтобы пустой отчет не появлялся пока не получается,если нет данных при выборе параметров.
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
28.02.2017, 18:53  [ТС] 6
Можно ли дописать вышеуказанную процедуру-чтобы не появлялись пустые отчеты,если данные отчета не выбрались при определенных параметрах и появлялось сообщение,что отчет не буде создан.
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
28.02.2017, 20:35 7
Цитата Сообщение от kos-625 Посмотреть сообщение
Можно ли дописать вышеуказанную процедуру-чтобы не появлялись пустые отчеты,если данные отчета не выбрались при определенных параметрах и появлялось сообщение,что отчет не буде создан.
В самом отчете создайте процедуру обработки события Отсутствие данных.
Visual Basic
1
2
3
4
Private Sub Report_NoData(Cancel As Integer)
 MsgBox "Данные отсутствуют!", vbInformation
 Cancel = True
End Sub
Но также включите обработку ошибки открытия отчета, которая при этом возникнет.
Visual Basic
1
2
3
On Error resume next
DoCmd.OpenReport rpt, acViewReport, , s
On Error GoTo 0
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
28.02.2017, 20:59  [ТС] 8
Вставляю этот код в процедуру обработки Отсутствие данных -выдает ошибку.
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
28.02.2017, 22:55 9
Цитата Сообщение от kos-625 Посмотреть сообщение
Вставляю этот код в процедуру обработки Отсутствие данных -выдает ошибку.
Какой именно "этот код"?
И какую ошибку выдает? И "кто" выдает - компилятор или период выполнения?
Покажите свою процедуру обработки события Отсутствие данных.

Поясняю:
Вторая часть относится к процедуре Private Sub Кнопка33_Click().
Команда
Visual Basic
1
DoCmd.OpenReport rpt, acViewReport, , s
там есть, две другие следует добавить.
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
28.02.2017, 23:09  [ТС] 10
Вот моя БД-Форма Фильтр3
Вложения
Тип файла: rar Библиотека.rar (6.59 Мб, 196 просмотров)
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
28.02.2017, 23:30  [ТС] 11
Скриншот ошибки:
Миниатюры
База данных "Библиотека"   База данных "Библиотека"  
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
28.02.2017, 23:54 12
БД мне не нужна.
Прочтите внимательно мое предыдущее сообщение.
Еще раз повторить? Ну, повторю.
Добавьте On Error resume next перед уже имеющейся в процедуре нажатия кнопки командой открытия отчета.
А On Error GoTo 0 поставьте после этой команды открытия отчета.
А Вы что делаете? Лепите в первое попавшееся место.
1
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
01.03.2017, 00:28  [ТС] 13
Спасибо за помощь!
В программных кодах не разбираюсь-методом "тыка".Пока ничего не получилось.
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
01.03.2017, 00:49 14
Попробую еще раз.

Найдите процедуру Private Sub Кнопка33_Click().
В этой процедуре найдите строку DoCmd.OpenReport rpt, acViewReport, , s.
Последняя строка.
Теперь перед ней (над ней) поставьте строчку On Error resume next.
Потом ниже строки с DoCmd.OpenReport rpt, acViewReport, , s поставьте строчку On Error GoTo 0.
Теперь уже строка On Error GoTo 0 станет последней строкой процедуры.
После нее будет только End Sub.
1
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
01.03.2017, 20:41  [ТС] 15
Ок. Все получилось! Спасибо!

Добавлено через 19 часов 41 минуту
Подскажите можно ли в форме Фильр 3 в параметрах которые выбираются-название книги,автор,читатель и раздел-добавить в вываливающийся список выборку "все",т.е все авторы,все читатели и т.д.
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
01.03.2017, 20:54 16
Можно, конечно.
Как-то так:
SQL
1
SELECT Top 1 " Все" FROM Tabl UNION ALL SELECT DISTINCT Название FROM Tabl
Только названия таблицы и поля свои подставьте.
Если там справочник названий с кодами, то так:
SQL
1
SELECT Top 1 0, " Все" FROM Sprav UNION ALL SELECT Код, Название FROM Sprav ORDER BY Название
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
01.03.2017, 21:36  [ТС] 17
А что не так? Справочник вываливается пустой.
SELECT Top 1 0, " Все" FROM Авторы UNION ALL SELECT КодАвтора, ФамилияИмяОтчество FROM Авторы
ORDER BY ФамилияИмяОтчество;

появляется ошибка- на скриншоте.
Миниатюры
База данных "Библиотека"  
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
01.03.2017, 21:45 18
Ага, прошу прощения, небольшая доработка:
SQL
1
2
SELECT Top 1 0 AS КодАвтора, " Все" AS ФамилияИмяОтчество FROM Авторы UNION ALL SELECT КодАвтора, ФамилияИмяОтчество FROM Авторы
ORDER BY ФамилияИмяОтчество;
0
4 / 4 / 1
Регистрация: 15.02.2014
Сообщений: 189
01.03.2017, 21:50  [ТС] 19
Появляется ошибка-
Миниатюры
База данных "Библиотека"  
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,633
01.03.2017, 21:55 20
А какой тип имеют КодАвтора и ФамилияИмяОтчество?
0
01.03.2017, 21:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 21:55
Помогаю со студенческими работами здесь

База данных Библиотека
База данных &quot;Библиотека&quot; В библиотеке ведется картотека читателей. На каждого читателя в...

База данных - Библиотека
Помогите создать Базу Данных на Access.Нужно срочно сдать проект!! БД содержит информацию об...

сохранение База данных библиотека
Сделал базу данных на тему Библиотека. Нужно сохранить в виде готовой рабочей программы. Как...

База Данных Библиотека в Access
Библиотека Описание предметной области --Вы являетесь руководителем библиотеки. --Ваша...

База данных электронная библиотека
Добрый вечер. Имеется база данных в MS Access. Делаю курсовую работу на тему: база данных...


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

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