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

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

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

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

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

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

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

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

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

46
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
23.10.2013, 10:12  [ТС]
Ладно.. Тогда вот так задам вопрос. Есть форма в которую подтягиваются значения из таблицы (форма-родитель). На этой форме есть кнопка, которая вызывает другую модальную форму. Как сделать, чтобы при нажатии на кнопку ОК в модальной форме формировался примерно следующий запрос:
SQL
1
2
3
4
5
INSERT INTO In_use (id,userid,issue,RETURN) 
VALUES ('$id из формы родителя', $id из модальной формы, '$значение из 1го поля с модальной формы', '$значение из 2го поля модальной формы');
UPDATE $таблица_из_которой_подтягивались_данные_в_форму_родитель
SET in_use=FALSE
WHERE $название_id_с_формы_родителя=$значение_id_с_формы_родителя;
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,718
24.10.2013, 07:50
Ну, например, вставить эти операторы в событие "по нажатию кнопки" OK.
Вызов оператора SQL
Visual Basic
1
CurrentDB.Execute <строка — оператор SQL>
Упоминание элемента чужой (открытой!) формы Forms!<Имя формы>!<Имя элемента>
0
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
24.10.2013, 08:42  [ТС]
Цитата Сообщение от iifat Посмотреть сообщение
вставить эти операторы в событие "по нажатию кнопки" OK.
Ну с горем пополам нашел следующую конструкцию:
Visual Basic
1
2
3
Dim strSQL As String
strSQL = " Insert Into In_use(id, userid, issue, return) values ('" & Forms![Список книг]!bookid & "', '" & Me.ПолеСоСписком5 & "', '" & Me.Поле11 & "', '" & Me.Поле13 & "');"
CurrentProject.Connection.Execute (strSQL)
Такой вариант работает, но если я добавляю после точки с запятой
Visual Basic
1
Update Books Set in_use=false Where bookid=Forms![Список книг]!bookid;
То так уже не работает и выдает ошибку на скрине:
Миниатюры
База данных домашняя библиотека  
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,718
24.10.2013, 09:54
1. Дык два оператора SQL даются двумями вызовами Execute
2. CurrentProject.Connection? Ээээ... Вот точно помню, CurrentDB.Execute... Хотя, давненько я не брал в руки Access. У тебя который?
0
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
24.10.2013, 13:23  [ТС]
Цитата Сообщение от iifat Посмотреть сообщение
У тебя который?
Access у меня 10й.
Цитата Сообщение от iifat Посмотреть сообщение
два оператора SQL даются двумями вызовами Execute
А как тогда правильно написать?
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,718
24.10.2013, 14:44
Та ёлки ж, один, а под ним — другой.
Visual Basic
1
2
3
4
5
Dim strSQL As String
strSQL = " Insert Into In_use(id, userid, issue, return) values ('" & Forms![Список книг]!bookid & "', '" & Me.ПолеСоСписком5 & "', '" & Me.Поле11 & "', '" & Me.Поле13 & "');"
CurrentProject.Connection.Execute (strSQL)
strSQL = " update ...;"
CurrentProject.Connection.Execute (strSQL)
2
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
24.10.2013, 15:09  [ТС]
Цитата Сообщение от iifat Посмотреть сообщение
Та ёлки ж, один, а под ним — другой.
Спасибо, получилось. Просто говорю, с access впервые столкнулся..

Добавлено через 19 минут
А вот еще вопрос. Можно ли сделать, чтобы кнопка была активной или не активной по условию? Ну или чтобы отображалась на форме или нет?
Хочу сделать так, чтобы кнопка Выдачи была не активна, если книга уже выдана.
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,718
24.10.2013, 16:20
Неактивной, или невидимой? Впрочем, неважно. В событии, кажись, Текущая запись (OnCurrent) пишешь, например,
Visual Basic
1
Кнопка.Enabled = Условие
Это для переключения активна/неактивна. Для исчезновения — Visible вместо Enabled.
1
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 13:00  [ТС]
Заработало =) Спасибо! Получилось как-то так:
Visual Basic
1
Me!Кнопка64.Enabled = (Me!in_use = True)
Добавлено через 16 часов 1 минуту
Теперь возник следующий вопрос:
Необходимо организовать вывод в элемент на форме (скорее всего подойдет список) следующего содержимого.. На форме через элемент полесосписком выбирается userid, затем нам надо найти все bookid, movieid и musicid, относящиеся к выбранному userid. Затем на основании полученных bookid, movieid и musicid надо в элемент на форме вывести название соответствующих книг, фильмов и альбомов с музыкой, которые мы получим из таблиц Books, Movies и Music.
Вопрос в том как составить данный запрос?
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
25.10.2013, 13:12
El HaZaRD - Вот я уже несколько раз выкладывал сборку примеров с различными вариантами скрытия/открытия элемента или запрет/разрешение доступа к элементу. Пользуйтесь поиском иногда. Собирал, выбирал, компоновал разные примерчики на форуме. Думаю может помочь в вашем затруднительном положении, вроде делал все понятно и доступно.
0
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 13:16  [ТС]
Получение bookid, movieid и musicid будет довольно просто. Должно сработать что-то вроде
SQL
1
SELECT bookid, movieid, musicid FROM In_use WHERE userid='" & Me![ПолеСоСписком] & "';
Если не прав, то поправьте.
А дальше как? Составлять еще один запрос? Или можно каким-то образом дополнить этот? Если еще один запрос, то эту выборку надо будет куда-то сохранять? И вообще как лучше делать: такими sql запросами или отчетами access?

Добавлено через 3 минуты
Цитата Сообщение от kmv-puh Посмотреть сообщение
несколько раз выкладывал
Я не знал как правильно обозвать эту операцию.. Искал по словам "сделать активным элемент" и, к сожалению, от Вас не было в поиске ничего...
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
25.10.2013, 13:24
Ловите - Туплю, забыл скинуть БД
1
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 13:26  [ТС]
Цитата Сообщение от kmv-puh Посмотреть сообщение
Ловите
Да, спасибо, но с этим я уже более или менее разобрался. Сейчас надо как-то победить выборку указанную выше..
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
25.10.2013, 13:40
Цитата Сообщение от El HaZaRD Посмотреть сообщение
Вопрос в том как составить данный запрос?
Вашу БД просмотреть и на реальном примере у меня нет возможности т. к. Акс 2000, а у Вас намного более молодой Аксик. НО, посмотрите как я тоже не сильно давно выкладывал БД - Общенародная БД - Вет. Клиника
Там в принципе как мене кажется задействовано то что вам нужно, как я понимаю (смотри источник записей форм)- типа - выбираешь в поле со списком всего 1-2 значения и 99 полей (Утрированно, но возможно) автоматом отображают всю информацию о хозяине, животном и. т. п. ЧЁ нужно.
0
2903 / 1937 / 210
Регистрация: 05.06.2011
Сообщений: 5,718
25.10.2013, 13:57
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от El HaZaRD Посмотреть сообщение
Получилось как-то так:
Visual Basic
1
Me!Кнопка64.Enabled = (Me!in_use = True)
На случай, ежли ещё не сталкивался: в Access кроме True и False есть ещё Null. Если, к примеру, поле in_use связано с полем таблицы, для которого не прописано значение по умолчанию, то после добавления записи в нём будет этот самый Null и Enabled, соответственно, станет не то Null, не то False, вот тут не уверен — выражение-то будет Null, а вот переменная, по идее, True/False. В общем, стоит проверить.
Цитата Сообщение от El HaZaRD Посмотреть сообщение
Visual Basic
1
SELECT bookid, movieid, musicid FROM In_use WHERE userid='" & Me![ПолеСоСписком] & "';
Можно примерно так:
Visual Basic
1
2
3
SELECT b.name, iu.bookid, iu.movieid, iu.musicid
FROM In_use iu inner join book b on iu.bookid=b.id
WHERE userid='" & Me![ПолеСоСписком] & "';
То бишь: в источник строк списка добавляешь нужные понятные столбцы, идам присваиваешь ширину 0 и берёшь их Список.Column(строка, столбец) — только посмотри по хелпам, не помню уж точно, Column или Columns, строка, столбец или столбец, строка — разберёшься, в общем, я в тебя верю
1
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 14:32  [ТС]
Цитата Сообщение от iifat Посмотреть сообщение
кроме True и False есть ещё Null. Если, к примеру, поле in_use связано с полем таблицы, для которого не прописано значение по умолчанию
В MySQL точно также. Но у меня с этим все в порядке. Значение по умолчанию задано true =) Так что NULL не должно быть никогда =)

Добавлено через 15 минут
Цитата Сообщение от iifat Посмотреть сообщение
Можно примерно так
Не совсем понял что должно получиться.. В приложении скрин схемы бд. Если можете, распишите с моими названиями таблиц и столбцов. А с id'ами я думал примерно так и поступить.. Мне по сути надо будет после сбора информации выделять строку в списке и удалять относящиеся к ней данные из таблицы In_use. Я Хотел сделать так, чтобы в список подтягивался еще и in_useid, но при этом был невидимым в списке (как вы писали ширину столбца сделать 0). А потом при щелчке на кнопку "Удалить" чтобы брался этот невидимый in_iseid из выделенной строки и по нему удалялась соответствующая строка из таблицы In_use (ну и обновлялись данные в других таблицах по также подтянутым, но невидимым bookid, movieid и musicid, но это уже мелочи).
Надеюсь понятно описал.. Если надо, то могу нарисовать, что конкретно я бы хотел получить.
Просто из-за нехватки знаний по access и недостатку времени для его полноценного изучения (учусь заочно, поэтому работа, семья и т.д.) я не могу сообразить хотя-бы какой элемент мне на форме использовать.. Метод научного тыка пока только и спасает =)
Миниатюры
База данных домашняя библиотека  
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
25.10.2013, 14:38
iifat - ДОКОЛЕ? Из аксика будеш переманивать в MySQL?
Наверное засланый Казачек?
В куда смотрят руководительство?
0
 Аватар для El HaZaRD
1 / 1 / 1
Регистрация: 08.02.2012
Сообщений: 29
25.10.2013, 14:41  [ТС]
Цитата Сообщение от kmv-puh Посмотреть сообщение
переманивать в MySQL
Если бы требовалась только база без обвязки, то я бы в MySQL ее бы и сделал =) Написал бы еще запросы и дело с концом =) А тут vba и access'ные приблуды.. Трындец какой-то в общем =)
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
25.10.2013, 14:47
Цитата Сообщение от El HaZaRD Посмотреть сообщение
...Трындец какой-то в общем =)...
А Я вот лично в 90 % все запросиками делаю, и просто и доступно без многоузанумного VBA , и главное усЁ так четко и простенько получается - ЗЫКАНСКО +++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2013, 14:47
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru