`удаление
Private Sub Command1_Click()
Dim lab1 As Label
Dim lab2 As Label
If Check1.Value = 1 Then
If MsgBox("Вы действительно желаете удалить данную видеокарту ?", vbYesNo, "База данных видеокарт") = vbYes Then
GoTo lab1
Else: GoTo lab2
End If
Else
lab1:
Dim i As Byte
Dim zpust As Byte
zpust = Form1.zerocell
For i = 1 To zpust
If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(i, 1) = Combo1.Text Then
Form1.excelist.ActiveWorkbook.ActiveSheet.Rows(i).Delete
Beep
Dim log1 As log
Dim u As Integer
Dim chk1 As tune
log1.vlog = "Удалена видеокарта "
log1.vdate = Date$
log1.vname = Combo1.Text
log1.vtime = Time$
Get #1, 3, chk1.chekn
u = Val(chk1.chekn) + 1
chk1.chekn = u
Put #1, 3, chk1.chekn
Put #2, u, log1
GoTo lab2
Next i
MsgBox "Модель не найдена"
lab2:
Combo1.Text = ""
End Sub
Изменение видеокарты происходит с помощью поиска модели видеокарты, если видеокарта не найдена появляется окно "Модель не найдена". Как и в форме добавления есть защита от пустого ввода.
`изменение
If Combo1.Text <> Empty Then
Dim o As Byte
Dim f As Label
For o = 1 To zpust
If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(o, 1) = Combo1.Text Then
Form1.excelist.ActiveWorkbook.ActiveSheet.Rows(o).Delete
With Form1.excelist.ActiveWorkbook.ActiveSheet
Cells(o, 1) = Combo1.Text
Cells(o, 2) = Combo2.Text
Cells(o, 3) = Combo3.Text
Cells(o, 4) = Combo4.Text
Cells(o, 5) = Combo5.Text
Cells(o, 6) = Text1.Text
End With
log1.vlog = "Изменена видеокарта "
GoTo f
Next o
MsgBox "Введите модель"
f:
Combo2.Text = ""
Combo3.Text = ""
Combo4.Text = ""
Combo5.Text = ""
Text1.Text = ""
Поиск и сортировка:
Осуществляются в одном окне, с помощью элементов optionbutton. Поиск:
Поиск происходит по модели и по цене, в т.ч. в диапазоне цен "от … до", "от … ", "до …". Автоматически происходит сортировка найденных элементов по цене в сторону увеличения.
Сортировка:
Можно выбрать любой параметр сортировки. Она будет произведена в сторону увеличения.
`загрузка формы
Private Sub Form_Load()
With MSFlexGrid1
TextMatrix(0, 0) = "Модель"
TextMatrix(0, 1) = "Шина AGP"
TextMatrix(0, 2) = "Частота ядра/памяти"
TextMatrix(0, 3) = "Об'ём памяти"
TextMatrix(0, 4) = "Тип памяти"
TextMatrix(0, 5) = "Цена"
MSFlexGrid1.ColWidth(0) = 3100
MSFlexGrid1.ColWidth(1) = 990
MSFlexGrid1.ColWidth(2) = 1900
MSFlexGrid1.ColWidth(3) = 1300
MSFlexGrid1.ColWidth(4) = 1100
MSFlexGrid1.ColWidth(5) = 1360
Dim i As Integer
Dim zpust As Integer
k = 1
MSFlexGrid1.TextMatrix(k, 0) = .Cells(i, 1)
MSFlexGrid1.TextMatrix(k, 1) = .Cells(i, 2)
MSFlexGrid1.TextMatrix(k, 2) = .Cells(i, 3)
MSFlexGrid1.TextMatrix(k, 3) = .Cells(i, 4)
MSFlexGrid1.TextMatrix(k, 4) = .Cells(i, 5)
MSFlexGrid1.TextMatrix(k, 5) = .Cells(i, 6)
k = k + 1
MSFlexGrid1.Rows = zpust + 1
MSFlexGrid1.Sort = 1
MSFlexGrid1.Rows = 70
`поиск / сортировка
Private Sub Command3_Click()
If e = True Then
Select Case r
Case Is < 6
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
Rows = zpust + 1
Col = r
Sort = 1
Rows = 70
Case 6
Dim u As Byte
MSFlexGrid1.Clear
For u = 1 To zpust
If Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(u, 1) = Combo1.Text Then
MSFlexGrid1.TextMatrix(k, 0) = .Cells(u, 1)
MSFlexGrid1.TextMatrix(k, 1) = .Cells(u, 2)
MSFlexGrid1.TextMatrix(k, 2) = .Cells(u, 3)
MSFlexGrid1.TextMatrix(k, 3) = .Cells(u, 4)
MSFlexGrid1.TextMatrix(k, 4) = .Cells(u, 5)
MSFlexGrid1.TextMatrix(k, 5) = .Cells(u, 6)
Next u
If k = 1 Then MsgBox "Модель не найдена"
Case 7
If Val(Combo2.Text) < Val(Combo3.Text) Then
Dim j As Integer
For j = 1 To zpust
If Val(Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(j, 6)) >= Val(Combo2.Text) And Val(Form1.excelist.ActiveWorkbook.ActiveSheet.Cells(j, 6)) <= Val(Combo3.Text) Then
MSFlexGrid1.TextMatrix(k, 0) = .Cells(j, 1)
MSFlexGrid1.TextMatrix(k, 1) = .Cells(j, 2)
MSFlexGrid1.TextMatrix(k, 2) = .Cells(j, 3)
MSFlexGrid1.TextMatrix(k, 3) = .Cells(j, 4)
MSFlexGrid1.TextMatrix(k, 4) = .Cells(j, 5)
MSFlexGrid1.TextMatrix(k, 5) = .Cells(j, 6)
Next j
Rows = k
Col = 5
MsgBox "Неверно задан диапазон"
Case Else
MsgBox "Неудача"
End Select
Option1.Enabled = True
Option2.Enabled = True
Option3.Enabled = True
Option4.Enabled = True
Option5.Enabled = True
Option6.Enabled = True
Option7.Enabled = True
Option8.Enabled = True
Combo1.Enabled = True
Combo2.Enabled = True
Combo3.Enabled = True
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
Option5.Value = False
Option6.Value = False
Option7.Value = False
Option8.Value = False
MsgBox "Выберите действие"
e = False
В любой момент можно просмотреть информацию о программе:
При нажатии клавиши выход появляется окно "Вы действительно желаете выйти?", при утвердительном ответе программа сохраняет все изменения и закрывается.
Заключение:
Использованные ресурсы:
Программа использует следующее компоненты:
- Microsoft Flex Grid Control 6.0 (SP3)
- Microsoft Windows Common Controls 6.0 (SP4)
и библиотеки:
- Visual Basic for Applications
- Visual Basic runtime objects and procedures
- Visual Basic objects and procedures
- Microsoft Excel 10.0 Object Library
Отличительные особенности программы:
- Практически все формы программы снабжены помощью, т.е. областями в которых появляется информация об объекте, на который наведен курсор. Например в форме поиска при движении курсора по объекту MSFlexGrid появляется информация о количестве найденных видеокарт.
- База данных имеет кроме файла с информацией о видеокартах (.dat) файлы с произвольным доступом. Файл настроек хранит информацию о положении флажков и количестве действий в истории. Файл истории хранит все сведения истории.
- В программе ведется история добавления, удаления, изменения видеокарт (а также очистки) с точностью до секунд. Её можно просмотреть в любой момент и очистить, если возникнет необходимость.
- Поиск по базе данных ведется по количеству введенных символов. Например если вы ввели "GeF" результатом будут все видеокарты GeForce …
- Существует функция поиска в диапазоне цен:
от …
до …
и от … до …
- Использованы защиты от неверных действий. При выходе, удалении, очистки истории появляется окно подтверждения.
- При оформлении программы использованы изображения реальных видеокарт.
В процессе написания программы мною были освоены азы программирования на VB 6.5. Изучены основные операции функции и процедуры.
Страницы: 1, 2