Как я “объединяю связанные таблицы в цепочку” в Доступе?

Любой код, который мы дадим внутри цикла for, берется как один блок и будет выполняться 10 раз от i = 0 до 9.

Даже если вы назначите i = 11 или любую другую переменную x = 1 внутри цикла for, она напечатает значение, которое мы присвоили 10 раз.

Пожалуйста, найдите вложения.

enter image description here

enter image description here

7
задан user105064 12 May 2009 в 00:01
поделиться

3 ответа

Нет - вы можете только ссылка на реальные таблицы - вам необходимо воссоздать ссылки на SQL-сервер, которые вы использовали для базы данных B для базы данных A

Если данные SQL-сервера не сильно меняются, и вы просто используете их для поиска, вы можете импортировать данные в реальные таблицы Access на которую вы можете ссылаться.

РЕДАКТИРОВАТЬ

Другое решение - динамически связать таблицы - таким образом вы этого не сделаете. Нет необходимости добавлять DSN вручную на каждый компьютер. Используйте строку подключения примерно так:

ODBC;Driver={SQL Server};Server=<server name/IP>;Database=<database>;UID=<user>;PWD=<password>

Это связывает таблицу

Dim db As Database
Dim TD As TableDef
Dim sTableName As String  ''MS Access name (can be same as SQL Server name)
Dim sServerTableName As String  ''SQL Server Name 

sTable = "Table1"
sServerTableName  = "dbo.Table1"
sServerConnect = "ODBC;Driver={SQL Server};Server=Localhost;Database=DB1;"

Set TD = db.CreateTableDef(sTableName)
TD.Connect = sServerConnect
TD.SourceTableName = sServerTableName

db.TableDefs.Append TD
db.TableDefs.Refresh
5
ответ дан 7 December 2019 в 12:24
поделиться

Не могли бы вы создать запрос / представление на B, которое представляет собой просто представление связанной таблицы на C, чтобы A затем мог получить доступ к запросу / представлению на B (который на самом деле является таблицей на C)?

например:


Linked Query on A     ->     Query on B
                                :
                       Linked table on B     ->    Real table on C

редактировать после комментария: Хорошо, очевидно, вы не можете ссылаться на запросы, так что тогда это не сработает.

Еще одна идея: можете ли вы настроить репликацию между B и C чтобы все таблицы C были реплицированы на B, где A может получить к ним доступ?

0
ответ дан 7 December 2019 в 12:24
поделиться

Что касается предложения запроса, можно использовать IN 'C: \ OtherDatabase.mdb' в предложении FROM :

SELECT qryMyTable.*
FROM qryMyTable IN 'c:\OtherDatabase.mdb';

Это отобразит для вас в базе данных, где хранится запрос, содержимое запроса в другой базе данных. Если этот путь к другой базе данных не изменится, вы можете использовать этот метод для совмещения связанных таблиц этой другой базы данных.

0
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: