powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите разобраться в ошибке пожалуйста...
3 сообщений из 3, страница 1 из 1
помогите разобраться в ошибке пожалуйста...
    #32158119
Inebs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Решаю проблему, которая неоднократно поднималась в форуме - Программно обновить связи в Аксесе. Т.е. есть клиентское место и база с данными-таблицами. Надо при изменении положения базы с таблицами, соответсвенно обновить данные с клиентским местом.
Пишу функцию.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Кнопка1_Click()
Dim strSearchPath As String
Dim strFileName As String

strFileName =  "C:\DBFile\Данные.mdb" 
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Set cat = New ADOX.Catalog
cat.ActiveConnection =  "Provider=Microsoft.Jet.OLEDB.4 . 0 ;Data Source=C:\DBFile\Прилож.mdb"
For Each tbl In cat.Tables
If tbl.Type =  "LINK"  Then
tbl.Properties( "Jet OLEDB:Link Datasource" ) = strFileName
tbl.Properties( "Jet OLEDB:Create Link" ) = True
End If
Next
End Sub

На строку
tbl.Properties("Jet OLEDB:Create Link") = True
выдает ошибку в первом же проходе цикла
Run-time Error -2147217887(80040e21)
Multiple-Step OLEDB Operation generated errors. Check each OLEDB status value, if available. No work was done.
...
Рейтинг: 0 / 0
помогите разобраться в ошибке пожалуйста...
    #32158122
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с задачей програмного обновления связей.
Пришёл к выводу, что лучше всего:
а) Удалить все связанные таблицы из БД
б) Прилинковать таблицы из указанного .mdb файла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim db As Database
Dim td As TableDef
Dim strSQL As String
Dim ws As Workspace
Dim strPath as String 'Путь к файлу БД


Set db = CurrentDb
For Each td In db.TableDefs
 If td.Connect <>  "" Then
   strSQL = " DROP TABLE [ " & td.Name & " ] "
   DoCmd.RunSQL strSQL
 End If
Next

Set ws = DBEngine.Workspaces(0 )

Set db = ws.OpenDatabase(strPath)

For Each td In db.TableDefs
    If Not td.Name Like "Msys* " Then
        DoCmd.TransferDatabase acLink, " Microsoft Access", strPath, acTable, td.Name, td.Name, False
    End If
Next td


При таком решении задачи повышается скорость выполнения операции корректировки связей.
...
Рейтинг: 0 / 0
помогите разобраться в ошибке пожалуйста...
    #32158129
Inebs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большущее спасибо! Все работает!!!!!!
Я всегда знала, что есть на свете добрые люди!!!!!!
У меня все получилось!!!!!!
Спасибо! :-)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите разобраться в ошибке пожалуйста...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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