Программирование на Visual Basic | Все записи admin

В этом разделе сайта находятся примеры из сборника программ "Архив файлов на Microsoft Access". В нем рассказывается о программировании форм, отчетов, таблиц и других объектов. Используйте этот архив для изучения работы с приложением Microsoft Office Access и программированием на Visual Basic for Application. Тем кто уже знаком с VBA, используйте поиск для нахождения кодов. Наберите, например, DAO, ADO, Recordset и найдете нужную ссылку для решения проблемы с программированием

Microsoft Access. Диспетчер связанных таблиц

18. Если у Вас интерфейс хранится в одной базе, а данные в другой, то необходимо научится привязывать базу к таблицам на сервере. Иначе пользователю, используя стандартный интерфейс будет очень трудно это сделать. В этом примере показано как это делается автоматически через программный код.

Private Sub Form_Open(Cancel As Integer)
Dim s As String, tdf As TableDef, dbs As Database
Dim tdfName As String, dbsName As String, i As Integer
    On Error GoTo 999
    Set dbs = CurrentDb 'Выбор базы данных
    dbs.Execute "DELETE * FROM [Пример 18]" 'Удаляем все записи
    'Инициализация таймера загрузки
    Application.SetOption "Строка состояния", True 'Показываем строку
    i = 1: SysCmd acSysCmdInitMeter, "Загрузка таблиц ...", dbs.TableDefs.Count
    For Each tdf In dbs.TableDefs   'Просматриваем все таблицы
        SysCmd acSysCmdUpdateMeter, i: i = i + 1 'Перерисовываем таймер
        dbsName = funGetSubString(tdf.Connect, ";DATABASE=", ";") 'Находим связанную таблицу
        If (dbsName  "") Then
            tdfName = tdf.Name 'Имя таблицы
            'Составляем запрос на добавление
            s = "INSERT INTO [Пример 18] ( Вкл, Таблица, Файл ) SELECT "  _
                "False AS Вкл, """  _
                tdfName  """ AS Таблица,"""  _
                dbsName  """ AS Файл;"
            dbs.Execute s 'Добавляем в таблицу меню
        End If
    Next
    SysCmd acSysCmdRemoveMeter 'Удаляем таймер
    Me.Requery 'Изменяем запрос в форме
    Exit Sub
999:
    SysCmd acSysCmdRemoveMeter 'Удаляем таймер
    MsgBox Err.Description 'Сообщаем об ошибке
    Err.Clear
End Sub

Microsoft Access. Связывание табличных форм

24. Если у вас в форме используется несколько таблиц, то связать их можно с помощью этого программного кода

Public Sub Form_Current()
    On Error GoTo 999
    With Me.Parent.Пример_24_2.Form
        .Filter = "Код="  Me.Код
        .FilterOn = True
    End With
    Exit Sub
999:
    Err.Clear
End Sub

Microsoft Access. Ссылка на подчиненную форму

21. Используя ссылку на подчиненную форму, можно автоматически вычислять итоги в главной форме. 

Private Sub Form_Load()
    Me.Сумма.ControlSource = "=[Список].Form![ИтоговаяСумма]"
End Sub