(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Проверка и автоматическое восстановление библиотечных ссылок

Источник: codingclub

Работает только в MDB. В MDE файлах проверить - то проверит - а восстановить не сможет. Выход есть но это уже другая история....

Public Sub RestoreReferenses()
′es 17.01.04
′Воостановление критичных ссылок при запуске приложения
′только зарегистрированных в реестре - глубже не копаем
′но если что - то можно восстанавливать еще по файлу:
′ Set ref = References.AddFromFile(filepath)
′================================================
Dim ref As Reference
Dim i As Integer, x As Integer
Dim RefGUID() As Variant

On Error GoTo RestoreReferensesErr
′Задаем количество ссылок - ОБЯЗАТЕЛЬНО!
x = 2
′Задаем размерность массива согласно x
ReDim RefGUID(1 To x, 0 To 5) As Variant

′Набивка массива
′1 Ссылка на DAO
RefGUID(1, 0) = "{00025E01-0000-0000-C000-000000000046}" ′GUID
RefGUID(1, 1) = "DAO" ′Имя (не обязательно)
RefGUID(1, 2) = 5 ′Версия - Major
RefGUID(1, 3) = 0 ′Версия - Minor
RefGUID(1, 4) = "dao360.dll" ′Имя файла или полный путь (не обязательно)
RefGUID(1, 5) = "Microsoft DAO 3.6 Object Library" ′Полное название (не обязательно)

′2 OLE Automation
RefGUID(2, 0) = "{00020430-0000-0000-C000-000000000046}"
RefGUID(2, 1) = "stdole"
RefGUID(2, 2) = 2
RefGUID(2, 3) = 0
RefGUID(2, 4) = "STDOLE2.TLB"
RefGUID(2, 5) = "OLE Automation"

On Error Resume Next
For i = 1 To x
Set ref = References(RefGUID(i, 1))
If Err > 0 Then ′Если ссылка не установлена - пытаемся восстановить из реестра
Err.Clear
Set ref = References.AddFromGuid(RefGUID(i, 0), RefGUID(i, 2), RefGUID(i, 3))
′Если ссылка не прописана в реестре то на метку ошибки
If Err > 0 Then GoTo RestoreReferensesErr
End If
′Проверяем не "отвалилась" ли?
If ref.IsBroken = True Then
MsgBox "Библиотечная ссылка: " & RefGUID(i, 5) & " отвалилась !" & vbCrLf & _
"Файл:" & vbCrLf & _
RefGUID(i, 4), vbCritical
End If
Next i

RestoreReferensesBye:
Set ref = Nothing
Exit Sub

RestoreReferensesErr:
MsgBox "Процедура [RestoreReferenses] привела к ошибке:" & vbCrLf & _
Err.Description & vbCrLf & " Err#" & Err.Number, vbCritical
Resume RestoreReferensesBye
End Sub

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 04.06.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100