Код модуля: Option Explicit Declare Function shellabout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal App As String, ByVal OtherStuff As String, ByVal Icon As Long) As Long Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Type LIBRARY numberUDK As Integer fio As String nameBOOK As String editionYEAR As Integer quantity As Integer End Type Public LIBRARY(10000) As LIBRARY Public kol_voKNIG As Integer Public i As Integer Public udk As Integer ----------------------------------------------------------------------- Option Explicit Private Sub Form_Load() Label6.Caption = "" Label7.Caption = "" Label8.Caption = "" Label9.Caption = "" Label14.Caption = "Статус: " Label15.Caption = "Автор: " Label16.Caption = "Название: " Label17.Caption = "Год издания: " Label21.Caption = "Номер УДК: " Label22.Caption = "Кол-во экземпляров: " Label23.Caption = "Статус: " 'Устанавливаем окно программы поверх остальных окон SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, 3 On Error GoTo e 'загрузка базы данных Open App.Path & "\Library.lib" For Input As #1 Do Until EOF(1) i = i + 1 kol_voKNIG = kol_voKNIG + 1 Input #1, LIBRARY(i).fio Input #1, LIBRARY(i).nameBOOK Input #1, LIBRARY(i).editionYEAR Input #1, LIBRARY(i).numberUDK Input #1, LIBRARY(i).quantity Loop Close #1 LibRefresh e: End Sub 'Сохранение базы данных Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim ende As Variant Cancel = True ende = MsgBox("Вы действительно хотите выйти из этой замечательной программы?", vbYesNo, frmMain.Caption) If ende = vbYes Then Open App.Path & "\Library.lib" For Output As #1 For i = 1 To kol_voKNIG Print #1, LIBRARY(i).fio Print #1, LIBRARY(i).nameBOOK Print #1, LIBRARY(i).editionYEAR Print #1, LIBRARY(i).numberUDK Print #1, LIBRARY(i).quantity Next i Close #1 End End If End Sub 'добавление книги в базу данных Private Sub Command1_Click() kol_voKNIG = kol_voKNIG + 1 With LIBRARY(kol_voKNIG) .fio = Text1.Text .nameBOOK = Text2.Text .editionYEAR = Val(Text3.Text) .numberUDK = Val(Text4.Text) .quantity = Val(Text5.Text) List1.AddItem .fio List2.AddItem .nameBOOK List3.AddItem .editionYEAR List4.AddItem .numberUDK List5.AddItem .quantity End With End Sub 'выдача книг Private Sub Command2_Click() udk = Val(Text6.Text) 'поиск книги по номеру УДК For i = 1 To kol_voKNIG If LIBRARY(i).numberUDK = udk Then 'книга найдена If LIBRARY(i).quantity = 0 Then MsgBox "Извените, книга находится на руках", vbInformation, frmMain.Caption Label23.Caption = "Статус: находится на руках" Exit Sub Else 'выдача инфы о книге Label6.Caption = LIBRARY(i).fio Label7.Caption = LIBRARY(i).nameBOOK Label8.Caption = LIBRARY(i).editionYEAR Label9.Caption = LIBRARY(i).quantity LIBRARY(i).quantity = LIBRARY(i).quantity - 1 Label23.Caption = "Статус: выдана" LibRefresh Exit Sub End If End If Next i MsgBox "Извените, данной книги нет в базе данных", vbInformation, frmMain.Caption Label23.Caption = "Статус: отсутствует в базе данных" End Sub 'возврат книг Private Sub Command3_Click() udk = Text7.Text For i = 1 To kol_voKNIG If LIBRARY(i).numberUDK = udk Then Label14.Caption = "Статус: Книга успешно возвращена в библиотеку" Label15.Caption = "Автор: " & LIBRARY(i).fio Label16.Caption = "Название: " & LIBRARY(i).nameBOOK Label17.Caption = "Год издания: " & LIBRARY(i).editionYEAR Label21.Caption = "Номер УДК: " & LIBRARY(i).numberUDK Label22.Caption = "Кол-во экземпляров: " & LIBRARY(i).quantity LIBRARY(i).quantity = LIBRARY(i).quantity + 1 LibRefresh MsgBox "Книга успешно возвращена в библиотеку", vbInformation, frmMain.Caption Exit Sub End If Next i MsgBox "Данная книга не принадлежит библиотеке. Не найдено совпадений по номеру УДК", vbCritical, frmMain.Caption End Sub Sub LibRefresh() List1.Clear List2.Clear List3.Clear List4.Clear List5.Clear For i = 1 To kol_voKNIG List1.AddItem LIBRARY(i).fio List2.AddItem LIBRARY(i).nameBOOK List3.AddItem LIBRARY(i).editionYEAR List4.AddItem LIBRARY(i).numberUDK List5.AddItem LIBRARY(i).quantity Next i End Sub 'постоянная проверка некоторыx параметров программы Private Sub Timer1_Timer() If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" _ And Text4.Text <> "" And Text5.Text <> "" Then Command1.Enabled = True Else Command1.Enabled = False End If If Text6.Text <> "" Then Command2.Enabled = True Else Command2.Enabled = False End If If Text7.Text <> "" Then Command3.Enabled = True Else Command3.Enabled = False End If End Sub Private Sub Text1_LostFocus() Text1.Text = UCase(Mid(Text1.Text, 1, 1)) & (Mid(Text1.Text, 2, Len(Text1.Text))) End Sub Private Sub Text2_LostFocus() Text2.Text = UCase(Mid(Text2.Text, 1, 1)) & (Mid(Text2.Text, 2, Len(Text2.Text))) End Sub Private Sub mnuAbout_Click() 'Общие сведения о программе On Error Resume Next Call shellabout(Me.hWnd, "Electronic library", "Разработчик Лапта Николай. г. Константиновск. http:\\kpovel.narod.ru, E-mail: kpovel@yandex.ru", Me.Icon) End Sub Private Sub mnuExit_Click() Unload Me End Sub