Самоучитель VBA


         

СЗаписями As Boolean, СФайлом As



With CommandButtonS

.Picture = LoadPicture("vbal7f.bmp")

.PicturePosition = fmPicturePositionCenter

End With

With CommandButton6

.Picture = LoadPicture("vbal7b.bmp")

.PicturePosition = fmPicturePositionCenter

End With

Label4.Caption = "Номер записи"

ComboBoxl.Clear

ИмяПапки = CurDir

ДлинаПути = Len(ИмяПапки}

With Application.FileSearch

.FileName = "*.dat"

.SearchSubFolders = False

If .Execute(SortBy:=msoSortByFileName,

sortorder:=msoSortOrderAscending) > 0 Then

For i = 1 To .FoundFiles.Count

ИмяФайла = Right(.FoundFiles(i), Len{.FoundFiles(i))

ДлинаПути - 1) ComboBoxl.Addltem ИмяФайла

Next i

End If

ComboBoxl.Listlndex = 0

End With

End Sub

'

Sub Управление( СЗаписями As Boolean, СФайлом As Boolean)

'

Dim ЭлементУправления As Object

For Each ЭлементУправления In Controls

ЭлементУправления.Enabled = СЗаписями Next ЭлементУправления CommandButton4.Enabled = СФайлом

ComboBox1.Enabled = СФайлом

End Sub

В рассмотренном выше приложении последовательно считывалась каждая запись из файла. Если файл с данными небольшой, то иногда удобнее создать массив, компоненты которого являются записями из файла произвольного доступа, а в приложении уже работать не с записями из файла, а с элементами массива. В приведенной ниже программе записи из файла Student.dat, созданного в приложении, считываются в массив студенты с последующим их выводом на рабочий лист.

Sub СчитываниеФайлаВМассив ()

Dim i As Integer

Dim Студенты() As СтудентТуре

Dim Студент As СтудентТуре

ДлинаЗаписи = Len(Студент)

ПоследняяЗапись = FileLen("Student.dat") / ДлинаЗаписи + 1

ReDim Студенты(1 To ПоследняяЗапись)

Open "Student.dat" For Random As #1 Len = ДлинаЗаписи

i = 1

Do Until EOF(l)

Get #1, i, Студенты(i)

' Вывод записи на рабочий лист

Cells (i, 1) .Value = Студенты(i) .Фамилия

Cells (i, 2).Value = Студенты(i).Имя

Cells(i, 3).Value = Студенты(i).Группа

i = i + 1 Loop Close #1

End Sub


Содержание  Назад  Вперед