Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание информационно-поисковой системы в среде Visual Basic




1. Итак, созданная информационно-поисковая система содержит следующую структуру:

 

Private Type med

name As String * 40

pr As Double

dt As Date

pst As Long

mem As Integer

sys As String * 25

vol As Integer

vid As String * 35

res As Integer

cor As Integer

End Type

 

Dim mw As med

Dim id As Long

 

  • Процедуру для добавления записей(по желанию можно дополнить базу данных,все необхоидмые поля содержаться в Frame1.

 

Private Sub Command1_Click()

mw.name = Text2.Text

mw.pr = Val(Text10.Text)

mw.dt = CDate(Text8.Text)

mw.pst = Val(Text11.Text)

mw.sys = Text3.Text

mw.mem = Val(Text4.Text)

mw.vol = Val(Text5.Text)

mw.vid = Text6.Text

mw.cor = Val(Text7.Text)

mw.res = Val(Text9.Text)

id = Val(Text1.Text)

Put #1, id, mw

End Sub

 

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

Private Sub Command3_Click()

List2.Clear

id = Val(Text13.Text)

If id < 1 Then

MsgBox " Данной записи не существует",, "Подсказка"

Else

If id > LOF(1) / Len(mw) Then

MsgBox " Данной записи не существует",, "Подсказка"

Else

If Text13.Text = "" Then

MsgBox " Введите номер записи"

Else

id = Val(Text13.Text)

Get #1, id, mw

List2.AddItem id & "." & mw.name & " " & mw.pr & " " & mw.dt & " " & mw.pst & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.res & " " & mw.cor & " "

End If

End If

End If

End Sub

 

2. Для наиболее полного чтения данных организовываем следующие кнопки:

  • При нажатии Command4 осуществляется переход в начало списка записей

Private Sub Command4_Click()

List1.Clear

id = 1

Get #1, id, mw

List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

End Sub

  • При нажатии Command5 осуществляется переход на предыдущую запись

Private Sub Command5_Click()

List1.Clear

If id > 1 Then

id = id - 1

Else: id = 1

End If

Get #1, id, mw

List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

End Sub

  • При нажатии Command6 осуществляется переход на следующую запись

Private Sub Command6_Click()

List1.Clear

If id < LOF(1) / Len(mw) Then

id = id + 1

Else: id = LOF(1) / Len(mw)

End If

Get #1, id, mw

List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

End Sub

 

 

  • Command7 позволяет перейти в конец списка записей

Private Sub Command7_Click()

List1.Clear

id = LOF(1) / Len(mw)

Get #1, id, mw

List2.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

End Sub

 

3. Следующим этапом организовываем поиск. Необходую информацию ищем следующим образом: вводим в текстовое поле (12) запрос (то,что необхоимо найти),нажимаем кнопку «Поиск». Все найденные данные будут отображаться в List1. Если запрос введен не корректно, то выводится следующую информацию: «По вашему запросу ничего не найдено»

Private Sub Command2_Click()

List1.Clear

id = 1

Seek #1, id

Do While Not EOF(1)

Get #1, id, mw

If InStr(Trim(UCase(mw.name)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.sys)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.mem)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.vol)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.vid)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.cor)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.dt)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.res)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.pr)), Trim(UCase(Text12.Text))) Or InStr(Trim(UCase(mw.pst)), Trim(UCase(Text12.Text))) > 0 Then

List1.AddItem id & " " & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst

End If

id = id + 1

Loop

If Text12.Text = "" Then List1.Clear

If Text12.Text = "" Then

List1.Visible = False

Text1.Text = False

Text2.Text = False

Text3.Text = False

Text4.Text = False

Text5.Text = False

Text6.Text = False

Text7.Text = False

Text8.Text = False

Text9.Text = False

Text10.Text = False

Text11.Text = False

End If

If List1.ListCount = 0 Then List1.AddItem "По вашему запросу ничего не найдено"

End Sub

 

4. Организовываем очищение текстового поля (12) при введенном в него запросе.

Private Sub Command9_Click()

Text12.Text = ""

End Sub

 

5. Следующим этапом производим удаление записей. Вводим в текстовое поле (14) номер записи, которую необходимо удалить. При нажатии кнопки «Удалить» удаляется выбранная запись и в List4 появляется отредактированный список, который сдвигается на количество удалённых записей.

 

Private Sub Command8_Click()

Open App.Path & "\db2.dat" For Random As #2 Len = Len(mw)

id = 1

Seek #1, id

Do While id <= LOF(1) / Len(mw)

Get #1, id, mw

If id <> Val(Text14.Text) Then

Put #2,, mw

End If

id = id + 1

Loop

Close #2

Close #1

Kill App.Path & "\db.dat"

 

FileCopy App.Path & "\db2.dat", App.Path & "\db.dat"

Kill App.Path & "\db2.dat"

Open App.Path & "\db.dat" For Random As #1 Len = Len(mw)

List4.Clear

For id = 1 To LOF(1) / Len(mw)

Get #1, id, mw

List4.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

Next id

End Sub

 

6. Для удобства создаем List3, в котором отображаются уже ранее введенные записи.

Private Sub Form_Activate()

Open App.Path & "\db.dat" For Random As #1 Len = Len(mw)

List3.Clear

For id = 1 To LOF(1) / Len(mw)

Get #1, id, mw

List3.AddItem id & "." & mw.name & " " & mw.sys & " " & mw.mem & " " & mw.vol & " " & mw.vid & " " & mw.cor & " " & mw.dt & " " & mw.res & " " & mw.pr & " " & mw.pst & " "

Next id

End Sub

 

 

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

Это осуществляется путем сдвига этих элементов. Первоначально фиксируем текстовое поле (12), затем Label12, кнопки «Поиск» и «Очистить». Далее закрепляем положение Frame1, Frame2, Frame3 и Frame4.

 

Private Sub Form_Resize()

Text12.Top = 0

Text12.Left = Form1.Width / 2 - Text12.Width / 2

Label12.Top = 0

Label12.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width

Command2.Top = 0

Command2.Left = Form1.Width / 2 + Text12.Width / 2

Command9.Top = 0

Command9.Left = Form1.Width / 2 + Text12.Width / 2 + Command2.Width

Frame3.Top = Text12.Height

Frame3.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width

Frame1.Top = Frame3.Top + Frame3.Height

Frame1.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width

Frame4.Top = Frame1.Top + Frame1.Height

Frame4.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width

Frame2.Top = Frame4.Top + Frame4.Height

Frame2.Left = Form1.Width / 2 - Text12.Width / 2 - Label12.Width

 

End Sub

 

 




Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 67; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopediasu.com - Студопедия (2013 - 2026) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.