четверг, 17 сентября 2015 г.

Microsoft Access. Функции RunCommand и FileSearch

Этот пример показывает как можно вызвать печать отчета на языке VBA из Microsoft Access. В примере выбирается отчет, но также можно отправить на печать и любой другой объект базы данных. Для этого измените параметр acReport. В следующей функции показан как использовать поиск файлов на диске.

Печать отчета через RunCommand

    '12. Печать на нескольких принтерах
    Private Sub Example12_Click()
        On Error GoTo 999 'Выход по ошибке
        While (1) 'Назначаем бесконечный цикл
            DoCmd.SelectObject(acReport, "Пример 12"True'Выбираем отчет в БД
            DoCmd.RunCommand acCmdPrint 'Вызываем печать
        End While
999:
        Err.Clear() 'Очищаем ошибку при отмене печати
        DoCmd.SelectObject(acForm, Me.Name)  'Выбираем форму
    End Sub


Поиск данных Application.FileSearch

Использование Application.FileSearch поможет Вам найти файлы на диске. Для Office 2007 эта функция не работает. Можно использовать другие функции, типа Dir, FileSystemObject и т.п.

   ' Поиск файлов по шаблону
    Private Sub butRead_Click()
        Dim i As Long
        On Error GoTo 999
        With Application.FileSearch
            .NewSearch()
            .LookIn = Me.myFolder ' = c:\
            .FILENAME = Me.myExt ' = *.mdb
            .SearchSubFolders = Me.myFflagSubFolder ' = True
            If .Execute(SortBy:=msoSortByFileName, _
                     SortOrder:=msoSortOrderAscending) > 0 Then
                Me.progress = "Count=" & .FoundFiles.Count & vbCrLf
                For i = 1 To .FoundFiles.Count
                    Me.progress = Me.progress & .FoundFiles(i) & vbCrLf
                Next i
            End If
        End With
        Exit Sub      'Выходим из программы
999:
        MsgBox Err.Description
        Err.Clear() 'Очищаем поток от ошибок
    End Sub

Комментариев нет: