Переменный источник данных

vitabios
Дата: 13.01.2012 00:13:54
Необходимо выбирать данные запросом из связанных ODBC таблиц. Можно ли каким нибудь образом изменять имя ODBC источника данных.
Например указал на форме что источник называется DATABASE1 - используется этот источник, указал DATABASE25 - уже другой
vitabios
Дата: 13.01.2012 00:14:22
таблицы в разных источниках данных идентичны по структуре и названиям
ё
Дата: 13.01.2012 00:22:51
vitabios
таблицы в разных источниках данных идентичны по структуре и названиям

а что вы называете "источниках данных"
vitabios
Дата: 13.01.2012 08:13:17
ё,

ODBC источник данных, например на 1 комп-е источник называется Data1 на другом Data-2. Источники ведут к разным серверам, но структура БД одна и та же
studieren
Дата: 13.01.2012 08:40:19
vitabios,

Вариантов много. Например такой:
В каждом компе создайте DSN с одинаковым именем, но только в свойствах укажите в каждом случае разное название БД. А в таблицах ODBC линкуйте через DSN.

Есть ещё вариант с запросом. В каждом случае программно меняете текст запроса.
SELECT *
FROM Table1 AS T IN '' [ODBC;DSN=ЗдесьНазваниеDSN;DATABASE=ЗдесьНазваниеБД;UID=SA;PWD=13579]


Или так (если речь идёт об SQL Server)
SELECT *
FROM Table1 AS T IN '' [ODBC;DRIVER=SQL Server;SERVER=ЗдесьНазваниеИнстансаSQLServer;DATABASE=ЗдесьНазваниеБД;]
ё
Дата: 13.01.2012 11:16:19
vitabios
ё,

ODBC источник данных, например на 1 комп-е источник называется Data1 на другом Data-2. Источники ведут к разным серверам, но структура БД одна и та же

  ' Перелинковка серверных таблиц
  DSN = "DSN=" & DLookup("DBPath", "LinkDBPaths", "DBShortName='ServerDB'")
  For Each td In CurrentDb.TableDefs
    If td.Attributes And dbAttachedODBC Then
      td.Connect = "ODBC;" & DSN
      td.RefreshLink
    End If
  Next
vitabios
Дата: 13.01.2012 11:53:50
отличный вариант. только привыполнении запроса все равно просит указать источник. он у меня системный. как сделать чтобы не спрашивал?
studieren
Дата: 13.01.2012 12:00:16
vitabios,

А как выглядит Ваш запрос (ежели не военная тайна) может покажите?
vitabios
Дата: 13.01.2012 12:22:21
разобрался. остался последний вопрос - как заместо имени источника данных подставить значение из формы?
vitabios
Дата: 13.01.2012 20:55:04
studieren,

SELECT *
FROM ADV IN ' '[ODBC;DSN=DB30;UID=db2admin;MODE=SHARE;DBALIAS=DB30;TABLE=ADV; PWD=12345678];