Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Access > подключение видов MS SQL |
Автор: Euclid 25.4.2005, 15:42 |
В процессе разоработки постоянно приходится коннектиться к видам на MS SQL. Использую процедуру DoCmd.TransferDatabase acLink, "ODBC", connectway, acTable, remotename, TableName Каждый раз выскакивает формочка предлагающая выбрать уникальный ключ для этого вида (таблицы). Как можно это автоматизтровать? Как в процедуру TransferDatabase передать имена полей для ключа? |
Автор: Papirus 25.4.2005, 15:58 |
А через ADO не удобно? По существу вопроса, честно говоря, не знаю, что подсказать, поскольку ODBC для коннекта не использую. Но верю что это вам необходимо. Так что мой вопрос можно считать риторическим. ![]() |
Автор: Akina 25.4.2005, 15:58 |
А может коннектиться через ADO? Recordset.ActiveConnection... там вроде этой проблемы нет... Добавлено @ 15:59 Papirus ![]() |
Автор: Papirus 25.4.2005, 16:03 |
Akina ![]() Наливаю! ![]() |
Автор: Euclid 25.4.2005, 18:20 |
Я не знаю какой коннект. Я беру меню Файл и коннектусь. Выскакивает формочка с вопросом о ключе. Поскольку таблиц много, то написал цикл по таблицам, в котором использую эту процедуру (TransferDatabase). И на каждом виде надо сидеть и выбирать ключ. Это долго и чревато ошибками. Хотелось бы для каждоговида в табличку занести имена ключевых полей и чтобы программа при коннекте сама брала поля из таблицы. |
Автор: Papirus 26.4.2005, 08:29 | ||
|
Автор: Euclid 26.4.2005, 16:40 |
Спасибо! Я неправильно объяснил. Соединение с таблицей или видом - статическое- видимое в окне Database. Я не в процедуре или в форме коннектюсь. Для отладки я меняю Базы на севере и после заново коннекчусь ко всем таблицам в базе. |
Автор: Papirus 27.4.2005, 11:09 | ||||
И
![]() |
Автор: Euclid 27.4.2005, 16:18 |
Dim cnn As New ADODB.Connection, rs As New ADODB.Recordset On Error GoTo err_ex cnn.CursorLocation = adUseClient cnn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;" _ & "Initial Catalog=MyDB;Data Source=MyServer;Trusted_Connection=yes;" 'User Id=sa;Password=;" rs.CursorLocation = adUseClient rs.Open "Select Field1,Field2...FieldN From MyView1", cnn, adOpenKeyset,adLockOptimistic Forms!MyForm1.Recordsource = rs Мне не надо делать последнюю команду. Можно сказать так, что у меня вообще нет форм. У меня много таблиц и видов на сервере. К ним надо подконненктитится, чтобы они были на вкладке таблицы. Без всяких форм. Есть один макрос, который в цикле по именам таблиц вызывает встроенную процедуру DoCmd.TransferDatabase acLink, "ODBC", connectway, acTable, remotename, TableName И она (TransferDatabase!) для каждого вида выкидывает запрос на ключ. Как ей подсунуть имена полей, чтобы не сидеть и вручную не выбирать поля. Когда таблиц и видов сотни! |
Автор: Akina 27.4.2005, 16:22 |
Euclid слушай, а у тебя ADP или MDB??? |
Автор: Euclid 27.4.2005, 17:18 |
Access 2003 обычный файл mdb. |
Автор: Papirus 28.4.2005, 09:49 | ||
На сервере лежит файл MDB??? или используется SQL server? Я б сказал оч разные вещи!! |