Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
47 / 47 / 3
Регистрация: 09.12.2009
Сообщений: 154
1

Перелинковка таблиц из разных источников

16.06.2010, 12:03. Показов 3991. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В базе имеются несколько связанных таблиц. Источники разные.
Как настроить перелинковку для разных источников?

Кто-то выкладывал вот этот замечательный пример.
Вложения
Тип файла: zip AutoLink.zip (67.0 Кб, 187 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2010, 12:03
Ответы с готовыми решениями:

Одинаковые таблицы в БД для разных источников информации. Плохое решение?
Приветствую всех! Я участвую в проектировании информационной системы. Суть: система получает...

Один код с разных источников
Почему код страницы, загруженный с денвера отличается от того же кода загруженного с сервера? ...

SqlBulkCopy копирование данных из разных источников
Задача состоит в том чтобы из одного источника данних передать в другой только те записи которих...

Процентное соотношение заказов из разных источников
Ребят, доброго времени суток! Не получается никак разобраться с заданием. Есть некое количество...

7
453 / 215 / 5
Регистрация: 16.05.2010
Сообщений: 420
16.06.2010, 12:44 2
Пример знаком - сам использую єтот вариант. А что не устраивает ? Сейчас нет времени переписывать, если кину идею напишеш ?
0
47 / 47 / 3
Регистрация: 09.12.2009
Сообщений: 154
16.06.2010, 13:06  [ТС] 3
HOUSE MD,
допустим,
tabl1 связан с db1
tabl2 связан с db2
tabl3 связан с db3

приведенный пример позволяет перелинковать связь только с одной базой.
Идею твою попробую реализовать...
0
453 / 215 / 5
Регистрация: 16.05.2010
Сообщений: 420
16.06.2010, 13:26 4
В примере немного измененный вариант, но суть та же. Сам собирался писать автолинковку с разных баз. В них линковка проходит по пути из запроса из таблицы MSysObjects. Предлагаю сделать таблицу с путями и выбирать пути из нее по запросу и количеству подключаемых таблиц.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
For Each tdf In dbs.TableDefs
 
Добавить Счетчик количества подключений если равно значению из таблицы - переход на следующую базу.
 
If Len(tdf.Connect) > 0 Then
    tdf.Connect = ";DATABASE=" & sBase & "; PWD=512512"
 
    On Error GoTo err_Relin
    tdf.RefreshLink
 
End If
     
' прогресбар
intAmountConnecting = intAmountConnecting + 1
SysCmd acSysCmdInitMeter, "Відкриваю таблиці бази " & sBase & " Зроблено: " & Format(intAmountConnecting * 100 / lngX, "##0") & "% ", dbs.TableDefs.Count '& Format(m * 100 / lngX, "##0") & "% "
Call SysCmd(acSysCmdUpdateMeter, intAmountConnecting)
Next tdf
Чем смогу - помогу. Просто времени не хватает.
Вложения
Тип файла: rar AutoLink.rar (100.3 Кб, 85 просмотров)
2
453 / 215 / 5
Регистрация: 16.05.2010
Сообщений: 420
16.06.2010, 19:37 5
Интересно, что возвратит запрос LinkPath при прилинкованых таблицаз из нескольких баз ? Надо попробовать.
Попробовал. Выдает несколько путей. Нужно добавить нумерацию путей в запрос. Потом в DLokUp фильтр по номеру пути и организовать перебор путей: переменная количества путей - цыкл от 1 до количества, в нем определяем номер пути - подключаем таблицы по указанному пути - цыкл... О как расписался

Добавлено через 5 часов 57 минут
Я уже и запрос с нумерацией строк (для выложеного примера) сделал:
SQL
1
2
3
SELECT DCount(" Database","MSysObjects","Database <='" & [DATABASE] & "'") AS Выражение1, MSysObjects.Database
FROM MSysObjects
GROUP BY MSysObjects.Database;
1
47 / 47 / 3
Регистрация: 09.12.2009
Сообщений: 154
30.06.2010, 16:19  [ТС] 6
как успехи)
я не осилил
0
453 / 215 / 5
Регистрация: 16.05.2010
Сообщений: 420
30.06.2010, 18:18 7
Не делал. Нет времени - дорабатіваю свою базу. Немного изменил выложенный здесь код: сначала ищет по прежнему пути, потом по месту размещения, а уже потом - запрос на подключение. Выложи что сделал. Попробую подправить - может вместе сделаем
0
1180 / 631 / 39
Регистрация: 30.05.2010
Сообщений: 715
30.06.2010, 20:49 8
Здравствуйте garik8000.
Если "перелинкование" БД случается не очень часто, можно выполнять с использованием подобного кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub reLinkDB()
Dim dbs As Database, tdf As TableDef, i%, j%, s$
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
    s = tdf.Connect
    If Len(s) > 0 Then
        i = InStr(1, s, "DATABASE=") + 9
        j = InStr(i, s, ".mdb") + 3
        s = Mid(s, i, j)
        If Len(Dir(s)) = 0 Then
            s = InputBox("", "", s)
            If Len(s) = 0 Then
            ElseIf Not Len(Dir(s, vbDirectory)) = 0 Then
                s = ";DATABASE=" + s '+ "; PWD=512512" ' если пароль действительно нужен
                tdf.Connect = s
                tdf.RefreshLink
            End If
        End If
    End If
Next
End Sub
но даже если потребуется оперативно "перелинковать" (с диалогом), лучше использовать вместо "взрослого" диалога на API, библиотеку ComDlg32.ocx (Microsoft Common Dialog Control), конструкция будет намного "аккуратнее".
Евгений.
2
30.06.2010, 20:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2010, 20:49
Помогаю со студенческими работами здесь

Архитектура для получения данных из разных источников
Уважаемые коллеги. Знаю, что наверняка вопрос избитый, но искать его нелегко, ибо каждый по-своему...

Как преобразовать объект в класс из разных источников?
Здравствуйте, подскажите как преобразовать объект в класс из разных источников. У меня есть класс,...

Логика получения цены товара из разных источников
Здравствуйте. Предположим у нас есть интернет магазин. Информация о данном товаре поступает из двух...

Параллельная загрузка с двух разных источников с помощью ajax.
Доброго времени суток всем! Есть код ajax который подгружает в блок информацию код JS //Функция...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru