powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MISSING
22 сообщений из 22, страница 1 из 1
MISSING
    #38433698
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не получается програмно удалить MISSING
Пробовал код
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=417478&msg=4010506] код (Proga)
выкидывает ошибку
Run-time error '48'
Error in loading DLL

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=417478&msg=4011423] код (Анатолий ( Киев ))
здесь не все нормально, но этот missing, почему-то, не убирает, хотя другие удалил без проблем
...
Рейтинг: 0 / 0
MISSING
    #38433702
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точнее ()
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=417478&msg=4011423] код (Анатолий ( Киев ))
здесь все нормально, но этот missing, почему-то, не убирает, хотя другие удалил без проблем[/quot]
...
Рейтинг: 0 / 0
MISSING
    #38433761
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaRasно этот missing, почему-то, не убирает, хотя другие удалил без проблем

перечтите весь топек внимательно
...
Рейтинг: 0 / 0
MISSING
    #38433788
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
полиномперечтите весь топек внимательно

Перечитывал, и нетолько этот.

Есть разные версии, но везде на IsBroken выдает ошибку (если не стоит обработчик ошибок)
...
Рейтинг: 0 / 0
MISSING
    #38433793
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaRas,
В обоих случая не совсем корректно организован цикл.
Код: vbnet
1.
2.
3.
4.
5.
  For Each ref In References
    ...
    References.Remove ref
    ...
 Next ref


Производя удаление мы уменьшаем количество Preferences, т.е если например удаляем >1 и один из них последний, то мы до второго не дойдем, а может и пропустим, если надо удалитть 3-й и 4-й из 10-ти, то после удаления 3-го, 4-й станет 3-им, а мы перейдем к 4-му.
Попробуйте сделать цикл от последнего к первому.
...
Рейтинг: 0 / 0
MISSING
    #38433809
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там это есть на второй странице
...
Рейтинг: 0 / 0
MISSING
    #38433840
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeLedVaRas,
В обоих случая не совсем корректно организован цикл.
...
Попробуйте сделать цикл от последнего к первому.
Ерунда.
Цикл For Each не использует индексы, он использует ссылки.
...
Рейтинг: 0 / 0
MISSING
    #38433865
полином
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alibek B.Цикл For Each не использует индексы, он использует ссылки.

Код: vbnet
1.
For i = refs.Count To 0 Step -1
...
Рейтинг: 0 / 0
MISSING
    #38433973
?????
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цикл For Each не использует индексы, он использует ссылки.
1.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub test1()
    Dim q As DAO.QueryDef
    Dim s$, i%
    
    s = "select 1"
    With CurrentDb
        For i = 1 To 10
            .CreateQueryDef "tmp" & CStr(i), s
        Next i
        Debug.Print .QueryDefs.Count
        For Each q In .QueryDefs
            .QueryDefs.Delete q.Name
        Next q
        Debug.Print .QueryDefs.Count
    End With
End Sub

Код: vbnet
1.
2.
 10 
 5 


2.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub test2()
    Dim q As DAO.QueryDef
    Dim s$, i%
    
    s = "select 1"
    With CurrentDb
        For i = 11 To 20
            .CreateQueryDef "tmp" & CStr(i), s
        Next i
        Debug.Print .QueryDefs.Count
        For Each q In CurrentDb.QueryDefs
            .QueryDefs.Delete q.Name
        Next q
        Debug.Print .QueryDefs.Count
    End With
End Sub

Код: vbnet
1.
2.
 10 
 0 


...
Рейтинг: 0 / 0
MISSING
    #38434031
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikeLedПопробуйте сделать цикл от последнего к первому.

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=417478&msg=4025011] код тоже не помог
...
Рейтинг: 0 / 0
MISSING
    #38434371
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaRas,
А что происходит при попытке удалить эту запись (ссылку)?
...
Рейтинг: 0 / 0
MISSING
    #38434510
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MikeLedVaRas,
А что происходит при попытке удалить эту запись (ссылку)?

перепробывал кучу кодов, везде, где встречается IsBroken выдает ошибку
...
Рейтинг: 0 / 0
MISSING
    #38437254
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
MISSING
    #38437424
VaRas, какой у вас Акс? Дело в том, что в А2000 появился глюк, и не знаю, исправлен ли до сих пор. Заключается в том, что если библиотека с таким GUID зарегистрирована, но путь к ней отличается от указанного в ссылке - удалить ссылку невозможно.
В первую очередь эта проблема вылазит на ссылках к офисным прогам, т.к. в разных офисах пути разные.

В случае с Excel я бы настоятельно рекомендовал вам позднее связывание (т.е. без ссылки на библиотеку). Для удобства разработки можно применить условную компиляцию (#Const, #If), при которой объявление функций, переменных и констант можно описать разными кусками кода для подключенной библиотеки (когда вы у себя правите код) и для отключенной (при отправке базы юзерам).

Позднее связывание, это когда ссылка на библиотеку не используется. Тогда все специальные объектные переменные описываются как Object, а специальные константы дублируются своими одноименными. Создание объектов выполняется методами CreateObject или GetObject.
Вот пример с условным компилированием:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#Const IsExcelRef = 1  '0 - ссылка на библиотеку Excel отсутствует.

Sub OpenExcel()
#If IsExcelRef = 1 Then
Dim ExlApp As Excel.Application, WB As Excel.Workbook, WSh As Excel.Worksheet, rng As Excel.Range
    Set ExlApp = New Excel.Application
#Else
Dim ExlApp As Object, WB As Object, WSh As Object, rng As Object
Const xlMinimized = -4140
Const xlMaximized = -4137
    Set ExlApp = CreateObject("Excel.Application")
#End If
    'Set ExlApp = CreateObject("Excel.Application")  'В обоих вариантах можно вынести за пределы условной компиляции
'Делаем окно Excel видимым и свернутым
    ExlApp.Visible = True
    ExlApp.WindowState = xlMinimized
'...
End Sub

Т.е. при установленной ссылке и IsExcelRef = 1 пишете код, наслаждаясь справкой и списками свойств/методов объектов, затем IsExcelRef = 0 - отключаете ссылку - тестируете - отдаете в работу.
...
Рейтинг: 0 / 0
MISSING
    #38437621
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),

MO2007 - MO2013
Поздним связыванием никогда не имел дело, попробую - отпишусь

Заранее, благодарен.
...
Рейтинг: 0 / 0
MISSING
    #38437849
MikeLed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaRas,

А руками-то ссылка удаляется?
a) при обычном запуске,
б) при запуске с шифтом.
...
Рейтинг: 0 / 0
MISSING
    #38437918
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При работе в разных окружениях удалить миссинг ссылки нельзя. Но можно сохранить проект со всеми удаленными ссылками и при старте линковать самые свежие из имеющихся, которые гарантированно будут не миссинг. При завршении работы проекта можно оставлять найденные сслылки - тогда при следующем запуске повторять линковку не надо, либо отлинковывать их - тогда при каждом старте процедура линковки будет повторяться одинаково. Именно такой вариант был реализован у меня в нескольких решениях.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
MISSING
    #39233702
Safich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за некропост, но это наиболее близкая тема по поиску.

Используя позднее связывание, как проверить есть ли в принципе Excel на компьютере?
...
Рейтинг: 0 / 0
MISSING
    #39233712
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
MISSING
    #39233896
Safich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\, спасибо за наводку... как я понимаю надо перебором проверять? По GUID как-ндь нельзя?
...
Рейтинг: 0 / 0
MISSING
    #39233910
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Safich, почему перебором?
Код: vbnet
1.
2.
3.
4.
'сама функция IsOLEObjectInstalled выше по ссылке
Public Sub Test()
Debug.Print "Excel.Application", IsOLEObjectInstalled("Excel.Application")' проверяем, зарегистрирован ли ВООБЩЕ Excel
End Sub
...
Рейтинг: 0 / 0
MISSING
    #39233911
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Safich...По GUID как-ндь нельзя?Если приглядеться внимательно к функции, то можно заметить что можно легко переделать и под GUID. Только какой смысл?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MISSING
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]