|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
Уважаемые знатоки. tblLocal - локальная таблица в Access tblServer - таблица на сервере (прилинковать их не получается) Запрос вида INSERT INTO tblLocal(F1, F2) SELECT F1, F2 FROM [ODBC;Driver={SQL Server};Server=...;Database=...;UID=...;PWD=...;].tblServer работает прекрасно, но интересует обратная ситуация: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Можно ли как-то указать локальную таблицу в таком запросе и если можно, то как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 13:25 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
ROI, Полистал, но ответа на вопрос, к сожалению, не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 14:28 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
UralecROI, Полистал, но ответа на вопрос, к сожалению, не нашел. там все есть как работать с таблицами через ADO. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 15:24 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
ROIUralecROI, Полистал, но ответа на вопрос, к сожалению, не нашел. там все есть как работать с таблицами через ADO.алвк, странный ты "до крика" ... чё ты ТСа по запросу "SQL" не отправил, спрашивается ? :) ТС, не знаю, что тебя попёрло в ВБА с этой задачей, но она решается аналогично твоему решению для локал Код: sql 1. 2.
то как ты хотел сделать "со старта", чрез провайдер МС СКЛ - тоже в принципе решаемо, через всякие МС СКЛ-ные опенровсет/опенквери, но это на порядок нафиг оно кому надо ! :) А все эти адо, дао и прочие JDBC всего лишь способ общения клиента с бд Не больше ! Если БД умеет работать с гетерогенными запросами, то пофик как ты её "попросишь" его выполнить :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2018, 13:18 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, Спасибо за отклик, но как правильно заполнить строку подключения я не понял: Все это находится в файле accdb (2007 офис), который лежит на жестком диске компьютера Поэтому что указать в качестве всех этих параметров непонятно. Server - путь к файлу? Database - имя файла accdb? Пользователя нет (только если учетная запись Windows) Пароля тоже нет Пробовал и другой драйвер, тоже не срослось. ВБА, потому что кроме этого ничего не знаю. Это так для себя, для облегчения работы. Access, как я понял, может работать с гетерогенными запросами, если я правильно понял что это такое, но как привязаться к локальной таблице находящейся в accdb файле не пойму. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 14:51 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
UralecЗапрос вида Код: sql 1.
работает прекрасно, но интересует обратная ситуация:Объясни, что обозначает эта твоя "обратная ситуация" ? Тебе нужно из локальной/акцессовской таблицы tblLocal, залить данные в таблицу tblServer на СКЛ Сервере, или что ? Или "обратная ситуация" обозначает работу именно в коннекте к серверу, а не из Акцесса ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 16:37 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, Нет наоборот, мне нужно в локальную/акцессовскую таблицу tblLocal залить данные с сервера. К этому серверу я могу подключиться только используя ADO, либо используя конструкцию: INSERT INTO tblLocal(F1, F2) SELECT F1, F2 FROM [ODBC;Driver={SQL Server};Server=...;Database=...;UID=...;PWD=...;].tblServer Но проблема в том, что на сервере конечно же таблиц туча и все их указывать в запросах так длинно проблематично. Плюс через ADO я могу на сервер подавать запросы через команды, а результат этих запросов должен лечь в локальную таблицу в акцессном файле. Надеюсь понятно объяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 16:59 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, вот я открыл адошный коннект Set obDB = New ADODB.Connection With obDB .Provider = "SQLOLEDB" .ConnectionString = "User ID=...;Password=...;DATA SOURCE=...;INITIAL CATALOG=..." .Open End With Вот получил нужные данные в рекордсет Set obReport = New ADODB.Recordset With obReport .ActiveConnection = obDB .Open SELECT F1, F2 FROM tblServer End With И возникает вопрос как находясь в адошном подключении к серверу сослаться на локальную таблицу в акцессном файле, чтобы скинуть туда данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:03 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
никак, нужно открыть другое соединение к твоему акцессному файлу, а потом в цикле передать данные построчно из одного рекордсета в другой. или как вариант присоеденить акцессную базу на сервере и работать там напрямую ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:06 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
Konst_One, Спасибо, такой я способ знаю. Просто не хотелось циклом перебирать, а красивое решение сразу залить одним запросом, ну а если это не возможно, то придется так делать. К тому серверу у меня доступ только на чтение и ни о каких присоединениях даже речи никто вести не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:12 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
тогда ваш путь - линковка нужных таблиц из сервера в ваш акцесс ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:15 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
Konst_One, да, свой сервер я линкую, но этот сервер я даже прилинковать не могу. Находясь в адошном подключении таблицу своего сервера я указываю в запросе как: [Сервер].БазаДанных.dbo.Таблица и все работает. Думал есть такое же решение и для локальной таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:21 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
UralecKonst_One, да, свой сервер я линкую, но этот сервер я даже прилинковать не могу. Находясь в адошном подключении таблицу своего сервера я указываю в запросе как: [Сервер].БазаДанных.dbo.Таблица и все работает. Думал есть такое же решение и для локальной таблицы. Это, по всей видимости, линкованный к "твоему серверу", другой МС СКЛ Сервер. Создай, один раз, в своей БД Акцесса, "запрос к серверу", (к "твоему серверу" !), где будет Код: sql 1.
И дальше используй этот запрос вместо этой, [Сервер].БазаДанных.dbo.Таблица, таблицы везде где надо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 17:59 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, Зря я про другой сервер написал, путаница только получается. У меня есть 3 вида таблиц: 1. таблицы на сервере, доступном только через ADO 2. таблицы на моем сервере, которые приликованы к БД Акцесса. 3. локальные таблицы в БД Акцесса. Делаю ADO подключение к серверу из пункта №1, делаю запрос к таблицам сервера №1, получаю данные и в этом же запросе скидываю их на сервер №2. То есть подружить 2 сервера в одном запросе у меня худо-бедно получается. А вот локальную таблицу (пункт №3) и сервер, доступный только через ADO (пункт №1), нет. Не совсем понял Ваше предложение на счет создания запроса в БД Акцесса. Я не могу в ADO подключении обратиться к локальной таблице (БД Акцесса) и также не могу обратиться к локальному запросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 18:16 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, Интересная кнопка, в чем-то поможет. Получается она заменила ADO подключение к недоступному серверу. Интересно а вот такое можно как-то запихнуть через такой запрос: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 18:45 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
Uralec1. таблицы на сервере, доступном только через ADOКак это ? Логин/пароль не дают, или какая причина ? UralecА вот локальную таблицу (пункт №3) и сервер, доступный только через ADO (пункт №1), нет.Возможность есть, но она не очень "френдли", т.с. В коннекте к серверу, для записи в Акс-таблицу, можно использовать OPENROWSET (выше уже говорил) Что-то типа : Код: sql 1. 2.
Только не советую с этой "возможностью" даже связываться. Слишком много "если" должно выполняться, что бы этой запрос работал: - на сервере должны быть разрешены ad hoс запросы - на сервере должен быть установлен ACE провайдер. Ещё и той же битности, что и сервер (а поставить и 64, и 32 одновременно нельзя) - провайдеру нужно установить 2-е проперти какие-то "правильные" - и главное, у логина под которым выполняется запрос должны быть достаточные права на доступ к файлу Акс-а с сервера. UralecИнтересно а вот такое можно как-то запихнуть через такой запрос:Оно-то, в принципе, можно. Пишешь все свои запросы в SQL этого "запроса к серверу", через ";" (можно программно через VBA) и выполняешь (опять же можно из VBA). Только параметры, в таком случае, нужно будет прописывать в запросе сразу литералами. Но только не конкретно в твоём случае. Твой АДО-конекшион (cnn), видимо где-то открыт глобально, и "держится" открытым всё время. Иначе такие варианты: Код: vbnet 1. 2. 3. 4.
не проходили бы. Так вот, "запрос к серверу", в итоге, выполнится в другом коннекте, с другим @@spid ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 10:19 |
|
ADO и локальная таблица Access
|
|||
---|---|---|---|
#18+
court, "Как это ? Логин/пароль не дают, или какая причина ?" При попытке прилинковать таблицу: Внешние данные - Дополнительно - База данных ODBC получаю сообщение: ODBC - ошибка вызова Истекло время ожидания запроса (#0) И выходит пустое окошко "Связь с таблицами" Почему так мне не понятно. При этом как Вы показали в "запрос к серверу" использую тоже самое подключение и все работает. Твой АДО-конекшион (cnn), видимо где-то открыт глобально, и "держится" открытым всё время. Не знаю насколько глобально, просто я его открыл перед всеми этим командами и закрыл после их выполнения. Поэтому получается я в одной сессии нахожусь. С простыми запросами Вы мне очень помогли, можно использовать "запрос к серверу", а с этим командами буду дальше разбираться. Спасибо большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2018, 11:49 |
|
|
start [/forum/topic.php?fid=45&fpage=46&tid=1611263]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 162ms |
0 / 0 |