Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как в VB ускорить перебор свойств форм БД, созданной в Access 97.

8.1K
07 августа 2005 года
patq
27 / / 21.07.2005
Доброго времени суток, всем заглянувшим сюда!

Программа написана на Visual Basic 6.0 (текст ниже).
В процессе работы она загружает БД, разработанную в Access 97 и просмотривает свойства всех Form этой БД.
На просмотр 14 форм (около 14000 свойств) уходит около 30 мин.
Как уменьшить время работы программы?

С уважением.

'в VBA в Проект.Информация установлено
' - Visual Basic for Application |vba6.dll
' - Visual Basic runtime objects and procedures |3
' - Visual Basic objects and procedures |vb6.olb
' - Microsoft Access 8.0 Object Library |MSACC8


Текст программы

Option Explicit

Dim AccObj As Access.Application

Sub BeginWork() 'Начало работы

'Откроем тестируемую БД
' Создает объект Workspace Microsoft Jet.
Set AccObj = CreateObject("Access.Application.8")
' Открывает для монопольного доступа аргумент Database,
' представляющий сохраненную базу данных Microsoft Jet.
AccObj.OpenCurrentDatabase "E:\Тест.mdb", True

Call PropertiForm 'просмотр свойств Форм

AccObj.Quit acExit 'закончим работать с приложением
Set AccObj = Nothing 'уберем ссылку на него

End Sub

'просмотр свойств Форм
Sub PropertiForm()
Dim i_Name As String
Dim i_Ob As Integer
Dim ip As Integer
Dim i_Form As Object

For i_Ob = 1 To CurrentDb.Containers("Forms").Documents.Count
i_Name = CurrentDb.Containers("Forms").Documents(i_Ob - 1).Name

'откроем форму для просмотра
AccObj.DoCmd.OpenForm i_Name, acDesign, , , , acHidden
Set i_Form = AccObj.Forms(i_Name)

With i_Form
'просмотр свойств Форм
Call WorkProperti(.Properties)

'просмотр свойств Форм
For ip = 1 To i_Form.Controls.Count
Call WorkProperti(.Controls(ip - 1).Properties)
Next ip
End With
'закроем форму
AccObj.DoCmd.Close acForm, i_Name
Set i_Form = Nothing
Next i_Ob

End Sub

'работа с продедурами
'Вход: Prop - указатель на продедурs
Sub WorkProperti(Prop As Properties)
Dim i_Prop As Object

For Each i_Prop In Prop 'просматриваем все свойства
If (i_Prop.Category = 4) And _
(i_Prop.Type = 8) Then
'анализ выбранных свойств
End If
Next
End Sub
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог