19577

Информационные системы. Домашняя бухгалтерия

Курсовая

Информатика, кибернетика и программирование

Тема моей курсовой работы – домашняя бухгалтерия. В рамках обычной семьи совершаются различные действия с деньгами, такие как их поступление, хранение и трата. В семье несколько человек, а значит счетов, с которых производятся операции

Русский

2014-06-10

1.58 MB

58 чел.

PAGE  2

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Курсовая работа

Информационные системы. Домашняя бухгалтерия.


ОГЛАВЛЕНИЕ
 

[1] Курсовая работа

[1.0.1] Информационные системы. Домашняя бухгалтерия.


Описание предметной области. Постановка задачи.

Тема моей курсовой работы – домашняя бухгалтерия. В рамках обычной семьи совершаются различные действия с деньгами, такие как их поступление, хранение и трата. В семье несколько человек, а значит счетов, с которых производятся операции, может быть несколько. Кроме того, средства могут поступать из различных источников и тратиться на различные нужды  

Необходимо создать базу данных такую, чтобы с ее помощью можно было бы быстро и удобно вводить, хранить и анализировать информацию об этих денежных операциях.

Таким образом, форма должна иметь вид:

Чтобы в ней можно было:

  •  Ввести информацию о поступлениях/расходах (кто, когда, откуда/куда,  сколько, примечание, если  необходимо)
  •  Счет и категорию выбрать из имеющегося списка.
  •  Во всех полях, кроме примечания, информация обязательно должна быть.
  •  Добавить новый счет и категорию.
  •  Всегда видеть приобретенную/потраченную со всех счетов сумму за день, неделю, месяц, год.
  •  Просмотреть интересующую информацию по заданным параметрам.
  •  Выводить отчеты об остатках на счетах и доходах/расходах по категориям.
  •  В отчетах видеть сумму за каждый месяц и год.


Информационная модель

 

                 Счета Категории

                                Доходы/расходы

                                    Вывод отчетов

Стрелки показывают, что таблицы должны быть связаны между собой. Для вывода отчета необходимо взять информацию из всех таблиц базы данных.

Главная задача СУБД – учет доходов и расходов, где фиксируются:

  •  Счет
  •  Дата денежной операции
  •  Категория
  •  Примечание.

Кроме того, нужно хранить информацию о счетах:

  •  Название счета.

А также информацию о категориях:

  •  Название категории

Таким образом, получились 3 таблицы: Счета, Категории, Учет.


Программная схема решения

Таблицы:

№1 “Scheta

Эта таблица предназначена для хранения списка счетов.

Имя поля

Тип данных

Размер поля

Подпись

Ключевое/обязательное поле

KodScheta

Счетчик

Длинное целое

да/нет

Schet

Текстовый

50

Счет

нет/да

2Kategoriya”

Эта таблица предназначена для хранения списка категорий.

Имя поля

Тип данных

Размер поля

Подпись

Ключевое/обязательное поле

Kod

Счетчик

Длинное целое

да/нет

Kategoriya

Текстовый

50

Категория

нет/да

нVid

Числовой

Целое

нет/да

Ддя поля “Vid”:

  •  условие на значение – 1 or -1.

№3 Uchet

В этой таблице хранятся данные об операциях, совершаемых со счетом.

Имя поля

Тип данных

Размер поля

Подпись

Ключевое/обязательное поле

Schet

Числовой

Длинное целое

Счет

нет/нет

Data

Дата/время

Дата

нет/да

Kategoriya

Числовой

Длинное целое

Категория

нет/да

Summa

Денежный

Сумма

нет/да

Primechanie

Текстовый

50

Примечание

нет/нет

Для поля Data”:

  •  значение по умолчанию – Date();

Поле Schet для связи с таблицей “Scheta”.

Поле Kategoriya для связи с таблицей “ Kategoriya ”.

Схема данных:

Формы:

№1 “Scheta

Автоформа: ленточная.

Источник записей: таблица “Scheta

Поле “KodScheta”: вывод на экран – нет;

Кнопка “Udalit” (с помощью мастера): категория – обработка записей; действие – удалить запись.

№2 “Kategoriya

Автоформа: ленточная.

Источник записей: таблица “Kategoriya ”.

Поля : “Kod”, “Vid” ”: вывод на экран – нет;

Создать поле со списком “Vid1” (в заголовке формы):

  •  фиксированный набор значений;
  •  число столбцов – 2;
  •  ширина столбцов –  2,542см;0см;
  •  источник строк –  "Доход";1;"Расход";-1 ;
  •  присоединенный столбец – 2;
  •  ограничиться списком – да;
  •  автоподстановка –да;
  •  значение по умолчанию – -1
  •  после обновления – процедура обработки событий:

Me.Requery

Me.Vid.DefaultValue = Me.Vid1 

Me.Kat1.Requery (после создания поля со списком Kat1)

Источник записей формы (с помощью построителя): SELECT Kategoriya.* FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Kategoriya!Vid1)); (все поля таблицы категория + поле  “Vid”, где в условии отбора - [Forms]![Kategoriya]![Vid1])

Закрытие формы: процедура обработки событий :

On Error Resume Next

DoCmd.SetWarnings False

Form("uchet").Requery

DoCmd.SetWarnings True

Кнопка “Udalit2” (с помощью мастера): категория – обработка записей; действие – удалить запись.

№3 Uchet

Автоформа: ленточная.

Источник записей: таблица “ Uchet ”.

Поле “Schet” преобразовать в поле со списком:

  1.  число столбцов – 2;
  2.  ширина столбцов –  0см;3см;
  3.  источник строк – Scheta 
  4.  присоединенный столбец – 1;

Поле “Kategoriya” преобразовать в поле со списком:

  1.  число столбцов – 3;
  2.  ширина столбцов –  0см;3см;0см;
  3.  источник строкSELECT Kategoriya.* FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDER BY Kategoriya.Kategoriya; (аналогично форме “Kategoriya”, + поле Kategoriya, где сортировка по возрастнию)
  4.  присоединенный столбец – 1;

Создать поле со списком “Vid1” (в заголовке формы):

  •  фиксированный набор значений;
  •  число столбцов – 2;
  •  ширина столбцов –  2,542см;0см;
  •  источник строк –  "Доход";1;"Расход";-1 ;
  •  присоединенный столбец – 2;
  •  ограничиться списком – да;
  •  автоподстановка –да;
  •  значение по умолчанию – -1
  •  после обновления – процедура обработки событий:

Me.Requery

Me.Kategoriya.Requery

Поле “Kategoriya” преобразовать в поле со списком:

  1.  число столбцов – 3;
  2.  ширина столбцов –  0см;3см;0см;
  3.  источник строк – SELECT Kategoriya.* FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDER BY Kategoriya.Kategoriya; (аналогично форме “Kategoriya”, + поле Kategoriya, где сортировка по возрастнию, вывод на экран – нет)
  4.  присоединенный столбец – 1;

Для вывода суммы дохода/расхода за день, неделю, месяц, год создать поля соответственно “sum_today”, “sum_week”, “sum_month”, “sum_year” + запросы:

  1.  today”:

таблицы: “Kategoriya”, Uchet”

поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

поле Data из табл. “Uchet”, групповая операция – Условие, условие отбора – Date(), вывод на экран – нет;

поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

  1.  Week”:

таблицы: “Kategoriya”, Uchet”

поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

поле Data из табл. “Uchet”, групповая операция – Условие, условие отбора – Between (Date()-Weekday(Date())+2) And (Date()-Weekday(Date())+8) вывод на экран – нет;

поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

  1.  “mesyac”:

таблицы: “Kategoriya”, “Uchet”

поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

поле Month([Data]) из табл. “Uchet”, групповая операция – Условие, условие отбора – Month(Date()) вывод на экран – нет;

поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

поле Year([Data]) групповая операция – Условие, условие отбора – Year(Date()), вывод на экран – нет.

  1.  God”:

таблицы: “Kategoriya”, “Uchet

поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

поле Year([Data]) групповая операция – Условие, условие отбора – Year(Date()), вывод на экран – нет.

Для  полей формы “Uchet

sum_today

 “sum_week”

“sum_month”

“sum_year”

данные  =DLookUp("sum1";"today")

=DLookUp("sum1";"Week")

=DLookUp("sum1";"Mesyac")

=DLookUp("sum1";"God")

Фильтр

Для фильтрации данных по дате, счету, категории, примечанию создать:

  1.  Поля:

Dat1:

  •  формат поля – краткий формат даты;
  •  значение по умолчанию Date()-7;
  •  после обновления – процедура обработки событий:

Me.Requery

dat2”:

  •  формат поля – краткий формат даты;
  •  значение по умолчанию Date();
  •  после обновления – процедура обработки событий:

Me.Requery

  1.  Поля со списком:

schet1”:  

  •  источник строк – SELECT Scheta.Schet FROM Scheta;
  •  нажатие кнопки – процедура обработки событий:

Me.Requery

Kat1”:  

  •  источник строк – SELECT Kategoriya.Kategoriya FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDER BY Kategoriya.Kategoriya;;
  •  нажатие кнопки – процедура обработки событий:

Me.Requery

Prim1”:  

  •  нсточник строк – SELECT Uchet.Primechanie FROM Uchet GROUP BY Uchet.Primechanie;
  •  нажатие кнопки – процедура обработки событий:

Me.Requery

  1.  Флажки:

“k1”:

  •  значение по умолчанию – истина;
  •  нажатие кнопки – процедура обработки событий:

Me.Requery

“k2”:

  •  значение по умолчанию – ложь;
  •  после обновления  – процедура обработки событий:

If k2 = True Then

Me.schet1.Requery

Else

Me.schet1.SetFocus

Me.schet1 = ""

End If

  •  нажатие кнопки – процедура обработки событий:

Me.Requery

“k3”:

  •  значение по умолчанию – ложь;
  •  после обновления  – процедура обработки событий:

If K3 = True Then

Me.Kat1.Requery

Else

Me.Kat1.SetFocus

Me.Kat1 = ""

End If

  •  нажатие кнопки – процедура обработки событий:

Me.Requery

“k4”:

  •  значение по умолчанию – ложь;
  •  после обновления  – процедура обработки событий:

If k4 = True Then

Me.Prim1.Requery

Else

Me.Prim1.SetFocus

Me.Prim1 = ""

End If

  •  нажатие кнопки – процедура обработки событий:

Me.Requery

  1.  Запрос: “Filtr1”

В режиме SQL:

SELECT Uchet.*

FROM Scheta INNER JOIN (Kategoriya INNER JOIN Uchet ON Kategoriya.Kod = Uchet.Kategoriya) ON Scheta.KodScheta = Uchet.Schet

WHERE (((Uchet.Data) Between (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat1],Date()-10000)) And (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat2],Date()+10000))) AND ((Scheta.Schet) Like IIf([Forms]![Uchet]![k2],[Forms]![Uchet]![schet1],"*")) AND ((Uchet.Primechanie) Like IIf([Forms]![Uchet]![k4],"*" & [Forms]![Uchet]![Prim1] & "*","*")) AND ((Kategoriya.Vid)=[Forms]![Uchet]![Vid1]) AND ((Kategoriya.Kategoriya) Like IIf([Forms]![Uchet]![k3],[Forms]![Uchet]![Kat1],"*"))) OR (((Uchet.Data) Between (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat1],Date()-10000)) And (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat2],Date()+10000))) AND ((Scheta.Schet) Like IIf([Forms]![Uchet]![k2],[Forms]![Uchet]![schet1],"*")) AND ((Kategoriya.Vid)=[Forms]![Uchet]![Vid1]) AND ((Kategoriya.Kategoriya) Like IIf([Forms]![Uchet]![k3],[Forms]![Uchet]![Kat1],"*")) AND ((IsNull([Uchet].[Primechanie]))<>False))

ORDER BY Uchet.Data DESC , Scheta.Schet;

Добавление нового счета и категории

Создать формы “Scheta2”,“Kategoriya2” из форм “Scheta”,“Kategoriya(сохранить как), перетащить их в примечание формы “Uchet”.

Scheta2”:

  •  режим по умолчанию – ленточные формы;
  •  после обновления  – процедура обработки событий:

Me.Parent.Schet.Requery

  •  закрытие – процедура обработки событий:

On Error Resume Next

DoCmd.SetWarnings False

Form("uchet").Requery

DoCmd.SetWarnings True

“Kategoriya2”:

  •  режим по умолчанию – ленточные формы;
  •  текущая запись  – процедура обработки событий:

Me.Vid.DefaultValue = Me.Parent.Vid1

  •  после обновления  – процедура обработки событий:

Me.Parent. Kategoriya.Requery

  •  закрытие – процедура обработки событий:

On Error Resume Next

DoCmd.SetWarnings False

Form("uchet").Requery

DoCmd.SetWarnings True

Создать кнопки:

shet_plus”:

  •  нажатие кнопки – процедура обработки событий:

On Error GoTo Err_shet_plus_Click

Me.Scheta2.Visible = True

Me.[Scheta2].Form.AllowEditing = True

Exit_shet_plus_Click: 

Exit Sub

Err_shet_plus_Click:

   MsgBox Err.Description

   Resume Exit_shet_plus_Click

  •  всплывающая подсказка – добавить счет.

   

“kategoriya_plus”:

  •  нажатие кнопки – процедура обработки событий:

On Error GoTo Err_kategoriya_plus_Click

Me. Kategoriya2.Visible = True

Me.[Kategoriya2].Form.AllowEditing = True

Exit_kategoriya_plus_Click:

Exit Sub

Err_kategoriya_plus_Click:

   MsgBox Err.Description

   Resume Exit_kategoriya_plus_Click

  •  всплывающая подсказка – добавить категорию.

 

Форма: текущая запись:

Me.sum_today.Requery

Me.Sum_Week.Requery

Me.Sum_month.Requery

Me.sum_year.Requery

Me.Kategoriya2.Visible = False

Me.Scheta2.Visible = False

Просмотр отчетов:

Создать кнопки:

  1.  “PoKategorii”: категории – работа с отчетом; действия – просмотр отчета СуммаПоКатегории; всплывающая подсказка – Просмотр отчета по категориям
  2.  “PoSchetu”: категории – работа с отчетом; действия – просмотр отчета СуммаПоСчету; всплывающая подсказка – Просмотр отчета по счетам.

Отчеты

СуммаПоКатегории

Создать простой запрос СуммаПоКатегории из таблиц “Kategoriya”, “Uchet”.

Поле:

Vid

Kategoriya          

Data

Сумма: ([Summa])

Year([data])

Имя таблицы:

Kategoriya

Kategoriya

Uchet

Групповая операция:

Группировка

Группировка

Группировка

Группировка

Условие

Создать перекрестный запрос “СуммаПоКатегории_перекрестный”. В запросе вывести запрос СуммаПоКатегории; в качестве заголовков строк – Kategoriya, Vid ; в качестве заголовков столбцов – Data; интервал – месяц; провести вычисления Сумма(Сумма); вычислить итоговое значение – да. Поле Kategoriya сортировка по возрастанию; поле Итоговое значение “Сумма переименовать” в “Всего за год”.

Создать автоотчет ленточный, источник записей – запрос “СуммаПоКатегории_перекрестный”, сохранить как “СуммаПоКатегории”.

Поле Vid преобразовать в поле со списком, тип источника строк – список значений; источник строк – -1;"РАСХОД: всего за  месяц";1;" ДОХОД: всего за  месяц"; число столбцов – 2; ширна – 0см;2,501см.

СуммаПоСчету

Создать простой запрос СуммаПоСчету из таблиц “Scheta”, “Kategoriya”, “Uchet”.

Поле:

Schet

Data

Сумма: ([Summa]*[vid])

Year([data])

Имя поля:

Scheta

Uchet

Сортировка

по убыванию

Создать перекрестный запрос “СуммаПоСчету_перекрестный”. В запросе вывести запрос СуммаПоСчету; в качестве заголовков строк – Schet; в качестве заголовков столбцов – Data; интервал – месяц; провести вычисления Сумма(Сумма); вычислить итоговое значение – нет.

Создать автоотчет ленточный, источник записей запрос “СуммаПоСчету_перекрестный”; сохранить как “СуммаПоСчету”.

Меню

Структура меню

Таблицы

Отчеты

Закрыть

Главная

Всего на счете

Счета

Доход/расход по категориям

Категории

Новые меню: 

Таблицы, команды – добавить все таблицы;

Отчеты, команды – добавить все отчеты;

Закрыть, команды – выход.

 


Тестирование

В любых процессах человеческий фактор играет важнейшую роль. Конечно, полностью защитить базу от неправильного ввода нельзя, но уменьшить число ошибок можно.

В данной базе предусмотрено следующее:

  •  Тип категории выбирается из списка:
  •  Аналогично счет и категория при вводе новой записи, а так же счет, категория и примечание в фильтре выбираются из списка (примечание по частичному совпадению).
  •  При неправильном вводе даты об ошибке сообщается:

  •  Не может быть введена сумма меньше нуля:

  •  Ввести что-либо в поля группы “Сумма за” нельзя. 

  •  Поскольку примечание, название счета в таблице Счета и категории в таблице Категории может быть любым, ограничения ввести нельзя.


Руководство пользователя

Откройте файл  “Домашняя бухгалтерия.rar” – “бухгалтерия.mdb”.

Перед Вами откроется главная форма.

В “Домашней бухгалтерии” каждую операцию доходов и расходов можно относить к конкретному счету. Счетами могут быть счет в банке, кредитная карточка, кошелек, электронные деньги и т.д. Система счетов необходима для того, чтобы  можно было отслеживать, где и сколько у Вас осталось денег. Вы можете использовать неограниченное количество счетов.

  1.  Для того, чтобы добавить новый счет, нажмите возле поля Счет. Появится форма, куда можно ввести данные. Либо в меню Таблицы – Счета.

Для того, чтобы удалить счет, в таблице нажмите .

Для того, чтобы посмотреть остатки на счетах, нажмите , либо в меню Отчеты – Всего на счете.

Для облегчения ввода расходов и доходов, в “Домашней бухгалтерии” есть списки категорий.

  1.  Для того, чтобы добавить новый счет, нажмите возле поля Категория. Появится форма, куда можно ввести данные. Либо в меню Таблицы – Категории.

Для того, чтобы удалить счет, в таблице нажмите

Для того, чтобы посмотреть доход/расход по категориям, нажмите.

либо в меню Отчеты – доход/расход по категориям

  1.  Все операции по доходам/расходам совершаются в главной таблице (меню Таблицы – Главная).

В таблице есть поля:

  •  Тип категории (выбрать доход или расход);
  •  Счет (с каким счетом совершались операции);
  •  Дата (дата совершения операции);
  •  Категория (выбор категории);
  •  Примечание (при необходимости можно ввести).

  1.  В группе полей “Сумма за” выводится информация о сумме дохода или расхода за период.
  2.  В группе полей “Фильтр по” можно просмотреть все операции, отобранные по необходимым параметрам. Если флажок стоит – фильтр включен, в списке выбрать необходимое, либо ввести (дату).
  3.  Для того чтобы выйти, нажать Закрыть.


Оценка результатов

В данной базе данных есть несколько недочетов, таких как:

  1.  В главной форме добавить новый счет и категорию можно лишь, если новая запись еще не сделана (например, если ввести название счета, то новая категория не сможет быть добавлена и т.п.). Это можно исправить. Как это сделать описано на сайте http://www.accesssoft.ru
  2.  Для ввода даты удобнее использовать календарь, чем вводить вручную. Это можно исправить. Для этого необходим, например, Microsoft Office 2007.

Руководство по установке и требованиям

Данная база данных называется Домашняя бухгалтерия.mdb;

Минимальный размер – 200 Кб;

Минимальные системные требования:

MS Office 2003 и более поздние версии;

MS Windows XP;

CPU Pentium 100 MHz (Intel или AMD).


 

А также другие работы, которые могут Вас заинтересовать

44041. Разработка системы помощи - справочная система «Art-shtrih.exe» 925 KB
  Вызов отчета из меню Охрана труда и окружающей среды. Правовые нормативные социально-экономические и организационные вопросы охраны труда Охрана труда необходима везде где трудится человек. Лишь охрана труда как система обеспечения безопасности жизни способна обеспечить здоровые и безопасные условия труда. Многосторонняя охрана труда имеет большое социальное экономическое и правовое значение.
44043. Модернизация системы автоматического регулирования температурного режима системы воздушного охлаждения установки Л-24/7 5.26 MB
  Характерной особенностью установки является наличие раздельной системы циркуляции водородсодержащего газа в обоих блоках. Задача системы аппаратов воздушного охлаждения поддержание на определенном уровне температуры газо-сырьевой смеси которая прокачивается через нее.6 Требования к средствам измерения и информационным каналам разрабатываемой системы Датчики являются элементом технических систем предназначенных для измерения сигнализации регулирования управления устройствами или процессами.1 Разработка функциональной схемы В данном...
44044. Дослідження та удосконалення процесу активізації експортної діяльності ВАТ „Львівська пивоварня” 808 KB
  Система стимулювання експорту (інструменти, інституціональні виконавці та характер їх взаємодії) у кожній країні є оригінальною. Її конфігурація залежить від соціально-економічного устрою країни і ступеня державного втручання в економічне життя. Виконання завдань державної політики стимулювання експорту забезпечує досягення однієї мети – збільшення у кількісному і вартісному вираженні вітчизняного експорту та можливе залучення до експортних операцій нових суб’єктів економіки.
44046. Социально-психологические барьеры построения карьеры женщины 336 KB
  Социальнопсихологические барьеры построения карьеры женщины. Образ женщины в массовом сознании. Значение карьеры в жизни женщины. Экспериментальные исследования карьеры женщины.
44048. Четырехэтажное здание с цокольным и техническим этажами и чердаком 1.05 MB
  Необходимые гигиенические условия воздушной среды в помещениях в основном обеспечиваются работой отопительных и вентиляционных устройств. Задача отопительных устройств – поддерживать в помещениях в холодный период года определенную и постоянную температуру воздуха. Для этого они должны снабжать помещение теплотой в количестве, равном потерям теплоты самого помещения в окружающую среду.
44049. Соціологія. Методичний посібник 353 KB
  Оформления пояснювальної записки дипломної роботи Зразок заяви випускника щодо теми такерівника дипломної роботи Зразки титульного аркушу пояснювальноїзаписки дипломної роботи Зразок бланка завдання на виконаннядипломної роботи