|
|
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Подскажите равнозначны ли следующие действия: 1) Файл-Внешние данные-Связь с таблицами 2) Использование команды DoCmd.TransferDatabase acLink ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 12:56 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 13:28 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Тогда почему при использовании первого метода скорость на много больше, чем во втором? Программный код моей базы: Private Sub btnDBOpen_Click() On Error GoTo Err_btnDBOpen_Click Dim dDbs As DAO.Database, tdf As TableDef, rst As DAO.Recordset Dim stDocName As String, arTables As Variant, arLTables As Variant Dim stLinkCriteria As String, Num As Integer Set dDbs = CurrentDb arTables = Array("AditionField", "BlanksMvmt", "BlanksTotal", "BlankTypes", "Coupons", "FinReports", "FinDocBlanks", "FinDocHeads", "FinDocRoutes", "FinDocTaxes", "Agents", "Agency", "Carriers", "Customers", "DocTypes", "Taxes", "PayForms", "Sys_Monthes", "Filials") arLTables = Array("AditionField", "BlanksMvmt", "BlanksTotal", "BlankTypes", "Coupons", "AgencyReports", "FinDocBlanks", "FinDocHeads", "FinDocRoutes", "FinDocTaxes", "Agents", "Agency", "Carriers", "Customers", "DocTypes", "Taxes", "PayForms", "Sys_Monthes", "Filials") For Num = LBound(arLTables) To UBound(arLTables) For Each tdf In dDbs.TableDefs If tdf.Name = arLTables(Num) Then dDbs.TableDefs.Delete tdf.Name End If Next tdf DoCmd.TransferDatabase acLink, "Microsoft Access", Me.listDBSelect & "\Dbdata.mdb", acTable, arTables(Num), arLTables(Num), False, True Next Num Set rst = dDbs.OpenRecordset("DBPaths") With rst .Index = "PrimaryKey" .Seek "=", Me.listDBSelect.Column(0) If .NoMatch Then MsgBox "Îøèáêà!" Else .Edit !LastDT = Now .Update End If End With Set rst = Nothing Set dDbs = Nothing DoCmd.Close acForm, Me.Name stDocName = "frmMenu" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_btnDBOpen_Click: Exit Sub Err_btnDBOpen_Click: MsgBox Err.Description Resume Exit_btnDBOpen_Click End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 14:17 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Почему поднимаю этот вопрос. У пользователя есть возможность при входе задать путь к базе на сервере. он на своей рабочей машине после регистрации выбирает в окне РАБОЧАЯ БАЗА и нажимает кнопочку ОТКРЫТЬ БАЗУ, а если захочет, то ИЗМЕНИТЬ и задать новый путь к базу, который запоминается в Me.listDBSelect и используется в DoCmd.TransferDatabase acLink. При такой организации работа более одного пользователя жуткий тормаз. Кроме того при попытке поставить приложение еще одному пользователю на новую машину возникла ошибка: выбрал рабочую базу нажал открать базу, а в ответ "Ошибочный аргумент" ... что это? Пришлось наплевать на гибкость и сделать по первому методу дабы обойти ошибку. Оказалось что это быстрее, чем второй. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 14:54 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
На основной вопрос у меня нет ответа, но: авторПри такой организации работа более одного пользователя жуткий тормаз. Видимо, плохая сеть. авторвыбрал рабочую базу нажал открать базу, а в ответ "Ошибочный аргумент" ... что это? Интересно бы узнать, на какой строке это произошло. Иначе можно гадать до посинения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 15:39 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Дело в том, что явно ссылки на ошибку в какой либо строке нет! просто появляется сообщение от MSAccess "Ошибочный аргумент", программа после окея не вылетает, хочешь хоть сто раз нажми на ОТКРЫТЬ БАЗУ. Уважаемый Владимир Саныч! Хотите сказать, что все должно работать хорошо если бы не сеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 15:51 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Советую научиться пользоваться режимом отладки программы. Иначе так и будете гадать - в какой же блин строчке ошибка то, а? Че делать, мужики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 15:55 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
У меня есть система, работающая с 95 года - сначала на Аксессе 2, а потом 97. Аппликация в сети, 20 юзеров, при входе все таблицы перелинковываются. Все пашет, как в аптеке. И с Лохом я согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 16:12 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Дело в том, что явно ссылки на ошибку в какой либо строке нет! Попробуйте закоментировать строчку ' On Error GoTo тогда наверное покажет в какой строке ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 16:18 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Ладно с ошибкой я разберусь, спасибо за советы! Просто хочется услышать мнения практиков о методе TransferDatabase. Из-за нижепреведенной инфы думалось, что тормаза при работе из-за него: В коде VB Microsoft этого не рекомендует: "Хотя в программах Visual Basic допускается использование метода TransferDatabase для связывания таблиц, рекомендуется вместо этого использовать объекты доступа к данным (DAO). Для создания связи с помощью DAO следует воспользоваться свойством Connect объекта TableDef." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 17:23 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Кстате об ошибке Стопориться на строке DoCmd.TransferDatabase acLink, "Microsoft Access", Me.listDBSelect & "\Dbdata.mdb", acTable, Пишет Ошибочный аргумент, и один раз (не знаю как объяснить) вышло сообщение, что не найдена \Dbdata.mdb она вообще на сетевом диске и на соседней машине с ней работають путь прописан правильно даже если его вручную прописать результат - ошибочный аргумент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2004, 18:14 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
На одной из машин (раньше там база работала нормально) переустановил ОС (все настройки старые восстановил-рабочую группу, IP-адреса, учетную запись...), установил офис, подключил файл рабочих групп, скопировал .mdb, запустил: на строке DoCmd.TransferDatabase acLink, "Microsoft Access", Me.listDBSelect & "\Dbdata.mdb", acTable, пишет Ошибочный аргумент. Может быть кто-то сталкивался с подобным или есть предположения, буду благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 13:38 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
А что дает в отладчике Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 14:53 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Честно, отладчиком в Access никогда не пользовался, только в фоксе, поэтому использовал примитивный MsBox. сейчас зашел в MVB, открыл код приведенный выше, определил переменные значеня которых надо контролировать (кажется watches), установил точку до которой необходимо выполнять программу и нажал ран ту курсор и ... ничего... нажатие на синий треугольник откравает окно, где предлогается выбрать из ничего макрос или создать новый. что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 15:40 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Поставь точку останова на строчке, где используется это выражение. После остановки программы нажми Ctrl + G и введи: ?Me.listDBSelect & "\Dbdata.mdb" Нажми Энтер. Результат плиз в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 15:55 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
А. да... Надо при запуске, чтоюы курсор находился в тексте запускаемой процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 15:58 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
2 AlexJuice Надо при запуске, чтоюы курсор находился в тексте запускаемой процедуры С какого бодуна?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:05 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
rezult: ?Me.listDBSelect & "\Dbdata.mdb" G:\New\Archive\2003\Dbdata.mdb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:22 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
?Me.listDBSelect & "\Dbdata.mdb" G:\New\Archive\2003\Dbdata.mdb ?acTable 0 ?arTables(Num) AditionField ?arLTables(Num) AditionField Все параметры, пробовал то же в рабочей базе на другом компе - отличий нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 16:33 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
2 Hummer А хрен его знает, с этим к тов. Гейтсу 2 DinN Блин... А имя таблицы-то для импорта где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:08 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
2 AlexJuice :) Фигня - форма, на форме кнопка, под кнопкой вызов процедуры. В процедуре ставим брейкпойнт, ходим дальше по любым модулям, лезем куда угодно. Открываем форму и жмём на кнопку. Что, брейкпойнт не сработает?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:15 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
Ага, про имена таблиц понял. Тогда не знаю :-( Только что попробовал, взяв в качестве источника базу в чужой папке, подключенной как диск. Все работает, даже если в той базе таблицу открыть в конструкторе. То ли проблема в системе... а таблица такая точно есть? Кстати, можно обойтись одним массивом, если имена таблиц одинаковые! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:16 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
2 Hummer Мое замечание относилось к запуску процедуры "синим треугольничком" в редакторе VB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:19 |
|
||
|
связать таблицы в Аccess
|
|||
|---|---|---|---|
|
#18+
2 AlexJuice Тогда вообще можно ничего не ставить, там есть Step Into, не помню как в ранних версиях, в XP точно есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 17:23 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32384904&tid=1676959]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 532ms |

| 0 / 0 |
