Создание структуры БД в СУБД MS ACCESS
⇐ ПредыдущаяСтр 2 из 2 На рисунках ниже представлены разработанные таблицы: Рисунок 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|