- •Дипломний проект
- •Пояснювальна записка до дипломного проекту
- •Завдання
- •Календарний план
- •1 Технічне завдання на створення підсистеми «обліку обладнання на підприємстві»
- •1.1 Призначення і мета створення підсистеми
- •2 Функціональна структура підсистеми
- •3 Інформаційне забезпечення підсистеми
- •4 Програмне забезпечення підсистеми
- •5 Розрахунок економічної ефектівності підсистемі
- •6 Охорона праці
- •6.1 Потенційно небезпечні та шкідливі виробничі фактори.
- •6.2 Електричні установки, до яких відноситься практично все обладнання
- •6.3 Забезпечення санітарно-гігієнічних вимог до приміщень оц.
- •6.4 Вимоги до роботи з пеом
- •6.5 Розрахунок штучного освітлення
6.5 Розрахунок штучного освітлення
Для розрахунку штучного освітлення використовують, в основному, три методи:
а) світлового потоку;
б) точковий;
в) питомої потужності.
Метод світлового потоку, як правило, використовують для розрахунку потужності освітлювальної установки при рівномірному розміщенні світильників загального освітлення над горизонтальною площиною, коли відсутні крупно - габаритні затінюючи предмети.
Основне розрахункове рівняння методу світлового потоку, за яким можна визначити світловий потік лампи світильника, має такий вигляд:
ФЛ= , (3.4)
де – нормована освітленість, лк;
S – площа приміщення , що освітлюється, м2;
KЗ – коефіцієнт запасу, що враховує значення освітленості в результаті забруднення та створення ламп (табл. 3.6);
Z – коефіцієнт нерівномірності освітлення (Z=1,15 для ламп розжарювання та дугових ртутних ламп – ДРЛ; Z=1,1 для люмінесцентних ламп, якщо відношення L / h не перевищує встановлених значень табл. 3.7);
N – кількість світильників;
n – кількість ламп у світильнику;
– коефіцієнт використання світлового потоку.
Коефіцієнт визначається за світлотехнічними таблицями (табл. 3.8, або 3.9) залежно від показника приміщення і, коефіцієнтів відбиття стін та стелі. Показник приміщення вираховується за формулою:
і = , (3.5)
де А і В – довжина і ширина приміщення, м;
h – висота світильника над робочою поверхнею, м.
Визначивши світловий потік лампи ФЛ, за табл. 3.10 вибирають найближчу стандартну лампу.
Якщо вже є відомим різновид світильника та кількість і тип ламп в ньому, розрахунок зводиться до визначення N з формули (3.4).
Визначаємо сумарну електричну потужність усіх світильників за формулою:
Рсв = Рл N n, (3.6)
де Рсв, Рл – відповідно потужність усіх світильників та однієї лампи.
Розрахуємо систему загального рівномірного освітлення лампами накалювання виробничого приміщення: з довжиною А=6м, шириною В=4м, висотою Н=3 м. Приміщення має світлу побілку: коефіцієнт відбиття СТЕЛІ =70%, СТІН =50%. Мінімальна освітленість за нормами ЕН=300 лк. Висота робочих поверхонь (столів) hР=0,7м. Використовуються лампи типа ЛБ потужністю 40 ВТ та світильники типу ЛП001 (з двома лампами).
Розв’язок
1. Визначаємо висоту світильника над робочою поверхнею. Оскільки світильники кріпляться до стелі, то їх висота над підлогою майже рівна висоті приміщення.
h = Н – hР = 3 – 0,7 = 2,3 м.
2. Визначаємо показник приміщення - і .
і = = .
3.Визначаємо коефіцієнт використання світильників ЛП001 при і =1,04, СТЕЛІ =70%, СТІН =50% з табл. 3.9, коефіцієнт використання =0,61.
Рис. 3.3. – Схема розташування світильника над робочою поверхнею
4. З табл.. 3.6 визначаємо коефіцієнт запасу: КЗ = 1,5.
Приймаємо коефіцієнт нерівномірності освітлення Z=1,1.
5. Для забезпечення необхідної нормованої освітленості робочих поверхонь обираємо лампи ЛБ-40 (світловий потік однієї лампи становить Фл = 3200 лм, табл. 3.10) і визначаємо необхідну кількість світильників з формули (3.4):
= =3.
Отже, для забезпечення рівномірності освітлення даного приміщення необхідно 3 світильника, які необхідно розташувати ряд.
6. Сумарна електрична потужність усіх світильників, встановлених в приміщенні: Рсв = Рл N n = 40 3 2 = 240 Вт.
Розташування світильників зображено на рис. 3.4.
Рисунок. 3.4. – Схема розташування світильників ЛП001 у приміщенні
ВИСНОВОК
Під час виконання дипломної роботи була розроблена та впроваджена комп’ютерна підсистема обліку обладнання на ПАТ «Ясиновський коксохімічний завод».
Основна мета роботи полягала в створенні підсистеми електронного документообігу технічних відділів підприємства. Розроблена підсистема дозволяє скоротити часові та матеріальні витрати на забезпечення функціонування установи, покращити якість функціонування та полегшити труд працівників управління.
Розроблена підсистема виконує наступні функції:
- «Облік обладнання підприємства»;
- «Ведення облік супровідних документів».
Розроблена підсистема може бути застосована (з деякою модернізацією, або без неї) в будь-якій установі схожого типу.
У подальшому підсистема може бути розвинута та поширена, тим самим охоплюючи як всі процеси, пов’язані з веденням різноманітних облікових задач та документообігом, так і процеси управління підприємством взагалі.
ПЕРЕЛІК ПОСИЛАНЬ
1. Статут ПАТ «Ясиновський коксохімічний завод» від 27.04.2011
2. http://www.ixbt.com/soft/hardware-inspector.shtml
3. http://www.softportal.com/screenshot-14440-printstore.html#48986
4. Маклаков С. В. Моделирование бизнес-процессов с AllFusion. M.: Диалог-МИФИ, 2008. - 224 с.
5. Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с.
6. Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с.
7. Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с.
8. Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с.
9. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с.
10. Пинтер Л. FoxPro 2.0 Application Programming / Пер. с англ. В.Артемова. — М., Киев: Эдель, Век, 1994. — 384 с.
11. Лори Ульрих Фуллер, Кен Кук Access 2010 для чайников = Access 2010 For Dummies. — М.: «Диалектика», 2010. — С. 384.
12. Маклаков С. В. Моделирование БД с ERWin. M.: Диалог-МИФИ, 2006. - 147 с.
13. Пол Мак-Федрис Microsoft Windows XP SP2. Полное руководство = Microsoft Windows XP Unleashed. — М.: «Вильямс», 2006. — С. 880.
14. http://www.debian.org/
15. Брайан Сайлер, Джефф Споттс Использование Visual Basic 6. Классическое издание = Special Edition Using Visual Basic 6. — М.: «Вильямс», 2007. — С. 832.
Додаток А. Лістинги основних ПМ
SplashScreen1.vb (головне вікно)
Public NotInheritable Class SplashScreen1
' конструктора проектов (пункт "Свойства" в меню "Проект").
Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Установить текст диалога во время выполнения в соответствии с информацией о сборке приложения.
'TODO: настроить сведения о сборке приложения в области "Приложение" диалогового окна
' свойств проекта (в меню "Проект").
'Заголовок приложения
If My.Application.Info.Title <> "" Then
ApplicationTitle.Text = My.Application.Info.Title
Else
'Если у приложения нет заголовка, использовать имя приложения без расширения
ApplicationTitle.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
End If
'Отформатировать информацию о версии с использованием в качестве строки формата текста,
' установленного для контроля версий во время разработки. При необходимости это может использоваться для эффективной локализации.
' Информация о построении и редакции может быть включена на основе следующего кода с заменой
' текста, установленного для контроля версий во время разработки, на строку типа "Версия {0}.{1:00}.{2}.{3}". Подробнее см.
' справку по String.Format().
' Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build, My.Application.Info.Version.Revision)
Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor)
'Информация об авторских правах
Copyright.Text = My.Application.Info.Copyright
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
MDIParent1.Show()
End Sub
End Class
MDIParent1.vb (головне меню програми)
Imports System.Windows.Forms
Public Class MDIParent1
Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click, NewToolStripButton.Click, NewWindowToolStripMenuItem.Click
End Sub
Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripButton.Click
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
' TODO: добавьте здесь код открытия файла.
End If
End Sub
Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SaveAsToolStripMenuItem.Click
Dim SaveFileDialog As New SaveFileDialog
SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
SaveFileDialog.Filter = "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*"
If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = SaveFileDialog.FileName
' TODO: добавить код для сохранения содержимого формы в файл.
End If
End Sub
Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CutToolStripMenuItem.Click
' Использовать My.Computer.Clipboard для помещения выбранного текста или изображений в буфер обмена
End Sub
Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click
' Использовать My.Computer.Clipboard для помещения выбранного текста или изображений в буфер обмена
End Sub
Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PasteToolStripMenuItem.Click
'Использовать My.Computer.Clipboard.GetText() или My.Computer.Clipboard.GetData для получения информации из буфера обмена.
End Sub
Private Sub ToolBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ToolBarToolStripMenuItem.Click
Me.ToolStrip.Visible = Me.ToolBarToolStripMenuItem.Checked
End Sub
Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click
Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked
End Sub
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub TileVerticalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.ArrangeIcons)
End Sub
Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseAllToolStripMenuItem.Click
' Закрыть все дочерние формы указанного родителя.
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
Private m_Form2Number As Integer
Private Sub ТребованияToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ТребованияToolStripMenuItem.Click
Form2.MdiParent = Me
m_Form2Number += 1
Form2.Show()
Form2.WindowState = FormWindowState.Maximized
End Sub
Private Sub ОборудованияToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ОборудованияToolStripMenuItem.Click
Form3.MdiParent = Me
m_Form2Number += 1
Form3.Text = "Окно " & m_Form2Number
Form3.Show()
Form3.WindowState = FormWindowState.Maximized
End Sub
Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub PrintPreviewToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewToolStripButton.Click
End Sub
Private Sub ПоОборудованиюToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоОборудованиюToolStripMenuItem.Click
Form5.Show()
End Sub
Private Sub ПоДокуметуToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ПоДокуметуToolStripMenuItem.Click
Form6.Show()
End Sub
Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
AboutBox1.Show()
End Sub
End Class
Form3 (форма роботи із документом обладнання)
Public Class Form3
Private Sub Doc_oborudBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Doc_oborudBindingNavigatorSaveItem.Click
Me.Validate()
Me.Doc_oborudBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "_MyDatabase_1DataSet.doc_treb". При необходимости она может быть перемещена или удалена.
Me.Doc_trebTableAdapter.Fill(Me._MyDatabase_1DataSet.doc_treb)
'TODO: данная строка кода позволяет загрузить данные в таблицу "_MyDatabase_1DataSet.doc_treb". При необходимости она может быть перемещена или удалена.
Me.Doc_trebTableAdapter.Fill(Me._MyDatabase_1DataSet.doc_treb)
'TODO: данная строка кода позволяет загрузить данные в таблицу "_MyDatabase_1DataSet.doc_oborud". При необходимости она может быть перемещена или удалена.
Me.Doc_oborudTableAdapter.Fill(Me._MyDatabase_1DataSet.doc_oborud)
'TODO: данная строка кода позволяет загрузить данные в таблицу "_MyDatabase_1DataSet.doc_oborud". При необходимости она может быть перемещена или удалена.
Me.Doc_oborudTableAdapter.Fill(Me._MyDatabase_1DataSet.doc_oborud)
MDIParent1.Height = 353
End Sub
Private m_Form2Number As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Form2.MdiParent = Me
m_Form2Number += 1
Form2.Text = "Окно " & m_Form2Number
Form2.Show()
Form2.WindowState = FormWindowState.Maximized
End Sub
Private Sub Doc_oborudBindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Doc_oborudBindingNavigatorSaveItem.Click
Me.Validate()
Me.Doc_oborudBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form4.MdiParent = MDIParent1
m_Form2Number += 1
Form4.Text = "Окно " & m_Form2Number
Form4.Show()
Form4.WindowState = FormWindowState.Maximized
Me.Validate()
Me.Doc_oborudBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
Dim Pt2 As DataRow = Form4._MyDatabase_1DataSet.Tables("harakteristika_pribora").NewRow()
Pt2("naimenovanie") = NaimenovanoeTextBox1.Text
'Pt2("data_polucheniya") = Data_polucheniyaDateTimePicker
Form4._MyDatabase_1DataSet.Tables("harakteristika_pribora").Rows.Add(Pt2)
'Form4.NaimenovanieTextBox.Text = NaimenovanoeTextBox1.Text
Me.Close()
End Sub
Private Sub Doc_oborudBindingSource_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Doc_oborudBindingSource.CurrentChanged
End Sub
Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class
Form4 (форма роботи із обладнанням)
Public Class Form4
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Harakteristika_priboraBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.Harakteristika_priboraBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
End Sub
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: данная строка кода позволяет загрузить данные в таблицу "_MyDatabase_1DataSet.harakteristika_pribora". При необходимости она может быть перемещена или удалена.
Me.Harakteristika_priboraTableAdapter.Fill(Me._MyDatabase_1DataSet.harakteristika_pribora)
Me.WindowState = FormWindowState.Normal
MDIParent1.Height = 623
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub NaimenovanieTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NaimenovanieTextBox.TextChanged
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
End Sub
Private Sub GroupBox2_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox2.Enter
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Validate()
Me.Harakteristika_priboraBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me._MyDatabase_1DataSet)
End Sub
Private m_Form2Number As Integer
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
Form3.MdiParent = MDIParent1
m_Form2Number += 1
Form3.Text = "Окно " & m_Form2Number
Form3.Show()
Form3.WindowState = FormWindowState.Maximized
MDIParent1.Height = 353
End Sub
End Class
Form5 (форма пошуку обладнання)
Public Class Form5
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ComboBox1.SelectedIndex >= 0 Then
Me.Hide()
Form3.Show()
If ComboBox1.SelectedIndex = 1 Then
Try
Form3.Doc_oborudTableAdapter.ponazvu(Form3._MyDatabase_1DataSet.doc_oborud, TextBox1.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
ElseIf ComboBox1.SelectedIndex = 2 Then
Try
Form3.Doc_oborudTableAdapter.podate(Form3._MyDatabase_1DataSet.doc_oborud, TextBox1.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
ElseIf ComboBox1.SelectedIndex = 0 Then
Try
Form3.Doc_oborudTableAdapter.zapros1(Form3._MyDatabase_1DataSet.doc_oborud, TextBox1.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End If
End If
Form3.MdiParent = Me
Form3.Show()
Form3.WindowState = FormWindowState.Maximized
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex = 2 Then
MonthCalendar1.Visible = True
Else
MonthCalendar1.Visible = False
End If
End Sub
Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
TextBox1.Text = MonthCalendar1.SelectionStart
End Sub
End Class
Form6 (форма пошуку документа)
Public Class Form6
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ComboBox1.SelectedIndex >= 0 Then
Me.Hide()
Form2.Show()
If ComboBox1.SelectedIndex = 0 Then
Try
Form2.Doc_trebTableAdapter.nomerdoc(Form2._MyDatabase_1DataSet.doc_treb, TextBox1.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
ElseIf ComboBox1.SelectedIndex = 1 Then
Try
Form2.Doc_trebTableAdapter.podate(Form2._MyDatabase_1DataSet.doc_treb, TextBox1.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End If
End If
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex = 1 Then
MonthCalendar1.Visible = True
Else
MonthCalendar1.Visible = False
End If
End Sub
Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
TextBox1.Text = MonthCalendar1.SelectionStart
End Sub
End Class