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

База данных домашняя библиотека

22.10.2013, 14:58. Показов 15124. Ответов 46
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток форумчанам.
По учебе тут набросал небольшую базу данных для домашней библиотеки. По заданию осталось прикрутить возможность выдачи, приема обратно и учет того, что я возьму взаймы.
С Access столкнулся впервые, поэтому база самая простая какую только можно было придумать.

Прошу помощи в дальнейшей доработке.

В данный момент есть мысль добавить кнопку "выдать" в списках книг, фильмов и музыки, по которой будет вызываться форма выдачи. Далее нужно как-то при нажатии на кнопку ОК вносить новую запись в таблицу In_use, где будет информация об id выдачи, id того, что выдано, id того кому выдано и даты выдачи и возврата.
Вложения
Тип файла: rar Database1.rar (9.87 Мб, 568 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2013, 14:58
Ответы с готовыми решениями:

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

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

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

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

46
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
25.10.2013, 15:18 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от kmv-puh Посмотреть сообщение
ДОКОЛЕ? Из аксика будеш переманивать в MySQL?
С гневом и возмущением отвергаю эти беспочвенные инсинуации! Я?! В MySQL?! Да ни за что!
Postgres + ну да хотя бы Дельфи — ещё можно пообсуждать, но только не Мускул...
1
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
25.10.2013, 15:26 22
Цитата Сообщение от iifat Посмотреть сообщение
Да ни за что!
Каюсь, наверное не так где то понял или бес попутал Что й та,
Акс+++ на все времена
0
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 15:30  [ТС] 23
Цитата Сообщение от kmv-puh Посмотреть сообщение
Акс+++ на все времена
Я вот все хочу в целях самообразования заняться изучением MSSQL, но когда это будет даже предположить не могу..
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
25.10.2013, 15:39 24
Цитата Сообщение от El HaZaRD Посмотреть сообщение
Я вот все хочу в целях самообразования заняться изучением MSSQL
ЭХХ. Сказал бы Вам по Русски, крепко про измену Аксику и смену веры , но думаю Модераторы очень шибко ругатся будут за нецензурность ну и соответственно всех благ и благосклонности напрочь лишат )
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
25.10.2013, 15:50 25
Цитата Сообщение от El HaZaRD Посмотреть сообщение
В приложении скрин схемы бд
Ээээ... Посмотрел. Так понимаю, в каждой строке in_use заполнен ровно один из bookid, movieid, musicid, остальные два пустые? Поимеешь нехило трудностей в работе. До первой ты уже дошёл. Запрос сделать не то чтоб нельзя, выглядеть будет примерно так:
MySQL
1
2
3
4
select iu.in_useid, iu.bookid, iu.movieid, iu.musicid,
   iif(not isnull(b.bookid, b.author & " " & b.title, iif (not isnull (m.movieid, m.director & " " & m.title, iif (not isnull (mc.musicid, mc.artist & " " & mc.album, "")))
from ((in_use iu left join books b on iu.in_useid = b.bookid) left join movies m on iu.in_useid = m.movieid) left join music mc on iu.in_useid = mc.musicid
where ...
Это только в общих чертах.
Обычный способ реализации таких задач — слить три таблицы (books, movies, music) в одну. Объединить одинаковые поля — idы точно, возможно, например, автора книги с режиссёрами фильма и артистом альбома — в общем, по максимуму, хотя без фанатизма (впрочем, всё лучше делать без фанатизма ), прочие поля либо выстраивать в той же таблице, либо таки раскидывать по трём. В принципе, то ж самое, но несколькими траблами поменьше.
1
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 16:52  [ТС] 26
Цитата Сообщение от iifat Посмотреть сообщение
слить три таблицы (books, movies, music) в одну
Тоже уже начал приходить к такому выводу.. Но попробуем пока так решить задачу. Для работы я бы такую базу использовать не стал =) Для учебы сойдет.
0
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
27.10.2013, 10:57  [ТС] 27
А вот еще идея пришла как упростить можно все это дело. Если сделать 3 запроса (на книги, музыку и фильмы) отдельно в виде простых, например
SQL
1
SELECT b.in_useid, b.bookid, a.author, a.title FROM Books AS a, In_use AS b WHERE a.bookid = b.bookid;
Можно потом их выполнить по очереди, а результаты всех трех свести в одну таблицу (элемент на форме)? Получится так?

Добавлено через 10 минут
При таких запросах можно даже не заморачиваться, что в таблице In_use в некоторых строках bookid=NULL.
SQL
1
SELECT b.in_useid, b.userid, b.bookid, a.author, a.title FROM Books AS a, In_use AS b WHERE a.bookid = b.bookid AND b.userid = 2 ;
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
27.10.2013, 11:35 28
Цитата Сообщение от El HaZaRD Посмотреть сообщение
результаты всех трех свести в одну таблицу (элемент на форме)
Соедините запросы по отдельным таблицам в юнион запросе и его сделайте источником подформы. В селект каждого из блоков юнион желательно дать текстовое поле с именем таблицы (books, movies, music)
1
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
27.10.2013, 13:08 29
Да, можно. Даже не обязательно подформу, можно и в список.
1
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
27.10.2013, 14:06  [ТС] 30
Сделал.
Вот такого плана мелкие запросы на каждый тип (книги, музыка, фильмы):
SQL
1
2
3
SELECT b.in_useid, b.userid, b.bookid, a.author, a.title
FROM Books AS a, In_use AS b
WHERE (((b.userid)=[USER]) AND ((a.bookid)=[b].[bookid]));
Из трех таких сделал union запрос:
SQL
1
2
3
4
5
6
7
8
SELECT "Книга" AS [тип], in_useid AS [номер выдачи], userid AS [код пользователя], bookid AS [id], author AS [автор], title AS [название]
FROM [Books долги по userid]
UNION ALL
SELECT *, "Фильм" AS [тип]
FROM [Movies долги по userid]
UNION ALL 
SELECT *, "Музыка" AS [тип]
FROM [Music долги по userid];
Выдает то, что нужно. Теперь вопрос в следующем: Я создал простую форму, где будет выбираться userid и после выбора будут выводиться его долги в элемент "Список". Сейчас если я к источнику данных элемента список указываю юнион запрос, то при открытии формы он меня сразу спрашивает userid. Как сделать порядок действий как я задумывал? Чтобы сначала открывалась форма, затем выбирался userid из ПоляСоСписком, а уже после этого на основании выбранного userid выполнялся юнион запрос с выводом данных в список?
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
27.10.2013, 15:00 31
Первое, что приходит в голову — сделать список пустым, а после выбора userid присваивать RowSource — так, кажись, это свойство называется — текст запроса.
Возможно, получится, если вписать в userid какое-нить значение по умолчанию. Да хоть -1.
0
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
27.10.2013, 16:15  [ТС] 32
Цитата Сообщение от iifat Посмотреть сообщение
после выбора userid присваивать RowSource
Точно. Надо попробовать. Только наверное после этого нужно будет обновить данные Списка не обновляя полностью саму форму...
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
27.10.2013, 20:36 33
Какое-то из REfresh, Requery вызвать.
0
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
27.10.2013, 23:54  [ТС] 34
Цитата Сообщение от iifat Посмотреть сообщение
Requery вызвать
Я так понял что к элементу на форме отдельно requery не применить.
Пока что сделал подчиненную форму, засунул в нее список, прицепил к нему юнион запрос. В запросах выставил условие
SQL
1
WHERE userid=[Forms]![Принять долг].[ПолеСоСписком1]
По умолчанию для элемента выставил значение "1". Настроил чтобы после обновления [ПолеСоСписком1] делался requery для подчиненной формы. Теперь при обновлении [ПолеСоСписком1] видно что подчиненная форма обновляется (мигает), но выводимые данные не меняются...

Добавлено через 5 минут
Разобрался. В топку подчиненную форму. Обновляю ту, на которой [ПолеСоСписком1], и тогда при размещении на ней же Списка, в нем все обновляется. Я думал, что при обновлении формы, содержащей [ПолеСоСписком1], значение этого самого поля потеряется..

Добавлено через 2 часа 10 минут
Так. В общем сделал. Получилось следующее:
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Кнопка1_Click()
Dim strSQL As String
strSQL = "Delete From In_use Where in_useid=" & Me.Список27.Column(1) & ";"
CurrentProject.Connection.Execute (strSQL)
strSQL = "Update " & Me.Список27.Column(6) & " Set in_use = true Where " & Me.Список27.Column(7) & "='" & Me.Список27.Column(3) & "';"
CurrentProject.Connection.Execute (strSQL)
DoCmd.Close
End Sub
Пришлось немного подправить юнион запрос. Добавил в него названия таблиц и id'ов, чтобы потом с их помощью генерить sql запросы.
Теперь при нажатии ОК в форме, удаляется запись из таблицы In_use и обновляется информация о доступности экземпляра в соответствующей ему таблице.

Добавлено через 4 минуты
Осталось прикрутить возможность самому брать что-либо у пользователей в долг и возвращать им.
0
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 2
20.02.2017, 01:41 35
Ребята! Скиньте готовую базу данных Домашняя Библиотека, могу на карту денег скинуть
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,475
20.02.2017, 03:12 36
Цитата Сообщение от PuhKMV Посмотреть сообщение
Сказал бы Вам по Русски, крепко про измену Аксику и смену веры , но думаю Модераторы очень шибко ругатся будут за нецензурность
Пух! - а вы не путаете яйца и бекон?! -А!
(Хотя вместе они хороши (на сковородке) - но всё же это разные сущности)

Поясню:
MS Acces - великолепное, простое решение по управлению Базами Данных. С Шикарными возможностями построения ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА.
MS SQL - и прочие с ним не имеют никакого внятного интерфейса общения с пользователем.

Всё.
Спасибо за внимание.

Добавлено через 8 минут
Цитата Сообщение от shaman567 Посмотреть сообщение
Скиньте готовую базу данных Домашняя Библиотека, могу на карту денег скинуть
А вы сначала ТЕХ. Задание составьте!
0
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
20.02.2017, 03:59 37
Eugene-LS, я это писал к тому, что не зачем присутствуя в одной Истинной вере, хотеть перейти в другую и спрашивать у Истинных верующих как удачнее перейти к идоло или огнепоклонничеству.
Или вы тоже засланный казачек?
1
0 / 0 / 0
Регистрация: 25.02.2020
Сообщений: 23
05.09.2020, 16:33 38
Добрый день!
Не остался ли у вас конечная БД эта? Уж очень хотел бы взглянуть на нее)
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,631
05.09.2020, 16:51 39
Цитата Сообщение от INFINIUM_60 Посмотреть сообщение
Не остался ли у вас конечная БД эта? Уж очень хотел бы взглянуть на нее)
Посмотрите начальную.
Стартовый пост.
0
0 / 0 / 0
Регистрация: 25.02.2020
Сообщений: 23
05.09.2020, 16:54 40
В начальной отсутствует схема данных. Именно она меня и интересует в первую очередь, как выглядит в конечном варианте.
0
05.09.2020, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2020, 16:54
Помогаю со студенческими работами здесь

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

База данных филиалы-библиотека
Добрый день нужна помощь не пойму как связать таблицу книги и факультеты вуза Задание База данных...

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

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


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

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