Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание структуры БД в СУБД MS ACCESS




На рисунках ниже представлены разработанные таблицы:

Рисунок 2 - Таблица «Предприятия»

Рисунок 3 - Таблица «Показатели»

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

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

 

5 Программирование приложения

Последовательность действий

1.Спроектировалась главная форма приложения.

Рисунок 4 - Главная форма приложения

2.Был создан модуль содержащий некоторые константы, методы подключения базы данных и обновление содержимого Grid.

Imports System.Data.OleDb

Module Module1

Public conn As OleDbConnection

Public RUB1()

Public RUB2()

Public comparison As String

Public kCom As Integer

 

Public Sub FillGrid(Grid1 As DataGridView, cmd As String, TableName As String)

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = cmd

Dim ds As New DataSet

Dim da As New OleDbDataAdapter(c)

da.Fill(ds, TableName)

Grid1.DataSource = ds

Grid1.DataMember = TableName

 

End Sub

Public Sub FillGrid(Grid1 As DataGridView, cmd As String, TableName As String, s1 As String, s2 As Integer)

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = cmd

c.Parameters.AddWithValue("Отчетный_периуд", s1)

c.Parameters.AddWithValue("Код предприятия", s2)

Dim ds As New DataSet

Dim da As New OleDbDataAdapter(c)

da.Fill(ds, TableName)

Grid1.DataSource = ds

Grid1.DataMember = TableName

 

End Sub

 

End Module

3.Написанны методы кнопок добавления и удаления.

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

Dim s1, s2, s3, s4 As String

Dim r As DialogResult

Form2.ShowDialog()

s1 = Form2.TextBox1.Text

s2 = Val(Form2.TextBox2.Text)

s3 = Val(Form2.TextBox3.Text)

s4 = Form2.TextBox4.Text

r = Form2.DialogResult

 

Form2.Close()

If r <> Windows.Forms.DialogResult.OK Then

Exit Sub

End If

 

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "insert into Предприятия(Название,Реквизиты,Телефон,Контактное_лицо) values('" & s1 & "','" & s2 & "','" & s3 & "','" & s4 & "')"

c.ExecuteNonQuery()

 

RefreshGrid()

End Sub

Private Sub RefreshGrid()

FillGrid(Grid1, "select * from Предприятия", "Предприятия")

Grid1.Columns("Код_предприятия").Visible = False

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

Dim s1, s2, s3, s4, s5, s6 As String

Dim r As DialogResult

Form3.ShowDialog()

s1 = Form3.TextBox1.Text

s2 = Form3.ComboBox1.Text

s3 = Form3.ComboBox2.Text

s4 = Form3.ComboBox3.Text

s6 = Val(Form3.TextBox2.Text)

s5 = Grid1.CurrentRow.Cells("Код_предприятия").Value

r = Form3.DialogResult

 

Form2.Close()

If r <> Windows.Forms.DialogResult.OK Then

Exit Sub

End If

 

Dim c As New OleDbCommand

c.Connection = conn

c.CommandText = "insert into Показатели(Код_предприятия,Название,Важность,Единица_измерения,Отчетный_периуд,Значение) values('" & s5 & "','" & s1 & "','" & s2 & "','" & s3 & "','" & s4 & "','" & s6 & "')"

c.ExecuteNonQuery()

 

RefreshGrid2()

End Sub

Private Sub RefreshGrid2()

Dim k As Integer

k = Grid1.CurrentRow.Cells("Код_предприятия").Value

FillGrid(Grid2, "select * from Показатели where Код_предприятия = " & k, "Показатели")

Grid2.Columns("Код_предприятия").Visible = False

Grid2.Columns("Код_показателя").Visible = False

End Sub

4.Написанны классы форм Добавления.

Public Class Form2

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Me.DialogResult = Windows.Forms.DialogResult.OK

Me.Close()

End Sub

 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

Me.DialogResult = Windows.Forms.DialogResult.Abort

Me.Close()

End Sub

 

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.AcceptButton = Button1

Me.CancelButton = Button2

End Sub

End Class

5.Подготовленна форма отслеживания динамики показателей.

Рисунок 5 - Форма отслеживания динамики показателей

 

6.Решена задача отслеживания динамики показателей.

Public Class Form4

Const USDtoRUB = 22000

Const EURtoRUB = 24000

Public Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Label10.Text = ""

Label4.Text = ""

Label6.Text = ""

Label8.Text = ""

Label10.Text = ""

Dim k As Integer

Dim Summ1 As Integer = 0

Dim Summ2 As Integer = 0

k = Form1.Grid1.CurrentRow.Cells("Код_предприятия").Value

FillGrid(Grid1, "select * from Показатели where Отчетный_периуд =? AND Код_предприятия =? ", "Показатели", "Первое полугодие", k)

Grid1.Columns("Код_предприятия").Visible = False

Grid1.Columns("Код_показателя").Visible = False

Grid1.Columns("Отчетный_периуд").Visible = False

FillGrid(Grid2, "select * from Показатели where Отчетный_периуд =? AND Код_предприятия =? ", "Показатели", "Второе полугодие", k)

Grid2.Columns("Код_предприятия").Visible = False

Grid2.Columns("Код_показателя").Visible = False

Grid2.Columns("Отчетный_периуд").Visible = False

ReDim RUB1(Grid1.Rows.Count - 1)

ReDim RUB2(Grid2.Rows.Count - 1)

mass(Grid1, RUB1)

mass(Grid2, RUB2)

For i As Integer = 0 To RUB1.Length - 1

Summ1 = Summ1 + RUB1(i)

Next

For i As Integer = 0 To RUB2.Length - 1

Summ2 = Summ2 + RUB2(i)

Next

Label8.Text = Summ2 - Summ1

End Sub

Private Sub Grid1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles Grid1.CellContentClick

Label10.Text = "отсутствует одно из значений показателя"

Dim k As Integer

If e.RowIndex = -1 Then

mass(Grid1, RUB1)

End If

k = e.RowIndex

If k <> -1 Then

Label4.Text = RUB1(k)

comparison = Grid1.Item("Название", k).Value

 

For Row As Integer = 0 To Grid2.Rows.Count - 1

If Grid2.Item("Название", Row).Value = comparison Then

Label10.Text = RUB2(Row) - RUB1(k)

End If

Next

End If

End Sub

Private Sub Grid2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles Grid2.CellContentClick

Label10.Text = "отсутствует одно из значений показателя"

Dim k As Integer

k = e.RowIndex

If e.RowIndex = -1 Then

mass(Grid2, RUB2)

End If

If k <> -1 Then

Label6.Text = RUB2(k)

comparison = Grid2.Item("Название", k).Value

 

For Row As Integer = 0 To Grid1.Rows.Count - 1

If Grid1.Item("Название", Row).Value = comparison Then

Label10.Text = RUB2(k) - RUB1(Row)

End If

Next

End If

End Sub

 

Private Sub mass(Grid As DataGridView, mass() As Object)

For Row As Integer = 0 To Grid.Rows.Count - 1

If Grid.Item("Единица_измерения", Row).Value = "USD" Then

mass(Row) = Grid.Item("Значение", Row).Value * USDtoRUB

End If

If Grid.Item("Единица_измерения", Row).Value = "RUB" Then

mass(Row) = Grid.Item("Значение", Row).Value

End If

If Grid.Item("Единица_измерения", Row).Value = "EUR" Then

mass(Row) = Grid.Item("Значение", Row).Value * EURtoRUB

End If

Next

End Sub

End Class

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...