powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access 2000 & Oracle (+)
10 сообщений из 10, страница 1 из 1
Access 2000 & Oracle (+)
    #32257191
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поможите, люди добрые :-)
Суть проблемы в следующем.
Есть Оракловая база, был написан интерфейс на Аксесе 2000.
Коннект к Ораклу происходит естессно через ODBC.
Так вот как красиво сделать подключение, чтоб не ручками через меню, а с помощью VBA?
Например, что то типа при открытии грузим форму, там вводим пароль, логин и имя сервера, затем параметры передаются в какую нибудь строку и...вперед.
Нужен именно конкретный пример такой строки.

Заранее благодарен.
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32257449
Для ADO
PROVIDER=MSDAORA;DSN=[Database];UID=[Login];PWD=dima;[Pass]


Для DAO и RDO
ODBC;DSN=[Database];UID=[Login];PWD=dima;[Pass]

[Database] - База данных;
[Login] - Логин
[Pass] - Пароль
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32258390
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Дмитрию Басовскому за помощь :-)

А не сочтете за труд показать пример более полно ?
Я имею ввиду, с описанием переменных и прочее :-)
Просто может быть я не совсем целиком описал задачку.
Есть mdb-шка, в ней куча связанных таблиц (Oracle 8i).
Связь через стандартный Microsoft драйвер (ODBC for Oracle).
Запросы, формы, модули, отчеты - это конечно все Access-овское.
При запуске грузится форма (назовем ее [Main]), с тремя полями ([Login], [Pass] и [Server]) и двумя кнопочками ([OK] и [Cancel]).
Обработку нажатия на [Cancel], думаю, можно опустить :-)
А вот после нажатия на [OK] хочется чтоб никогда не выскакивало запросов паролей и прочего (типа связь установлена и точка).
Нетрудно ли привести пример кода обработки нажатия на [OK] ?
Начиная с Private Sub и кончая End Sub.

Заранее еще раз спасибо.
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32258638
Для DAO или ADO ?
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32258694
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для DAO, так вроде привычнее :-))

BTW: а есть ли разница между ADO и DAO ?
Я имею ввиду, разница именно в таких простых ситуациях, а то уже столько материалов прочитал, что голова пухнет :-(
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32258759
Извини, у меня последний вопрос.
Тебе необходимо подключить таблицы к базе данных или сделать переменную сеанса?
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32258910
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, да, да.
Именно подключить ВСЕ таблицы разом.
А все из за того, что может будет какая то еще побочная работа в Access.
Вот такая вот закавыка.

Жду нетерпением тчк :-)
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32261034
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда, жаль...
Видимо на этом все и закончится :-(
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32261250
Функция подключения:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Function RefreshLinks(strDatabaseLink As String) As Boolean
' Обновляет связи с указанной базой данных.
' При успешном выполнении возвращает True.

    Dim tdf As TableDef

    ' Цикл по всем таблицам в базе данных.
    RefreshLinks = True
    For Each tdf In CurrentDb.TableDefs
        ' Если таблица имеет строку подключения, она является связанной.
        If Len(tdf.Connect) >  0  Then
            tdf.Connect = strDatabaseLink
            Err =  0 
            On Error Resume Next
            tdf.RefreshLink         ' Обновляет связь.
            If Err <> 0 Then
                RefreshLinks = False
                Exit Function
            End If
        End If
    Next tdf

    RefreshLinks = True        ' Обновление связей завершено.
    
End Function


Должно работать.
Делаешь так, линкуешь все таблицы, которые хочешь, чтобы они были доступны из базы данных. При следующей загрузке под другим пользователем формируешь строку подключения и скармливаешь его вышеуказанной функции. Она должна нормально сработать (во всяком случае с SQL-Server работает нормально).

Извини за долгое молчание
...
Рейтинг: 0 / 0
Access 2000 & Oracle (+)
    #32261518
supertim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Дмитрий Басовский

Уау!
Идеальный, красивый и, главное, простой пример.
Спасибо большое, а то я уже мучился с советами друзей.
Он заключался в том, чтоб генерить таблицы в момент запуска, создавать подключения и т.д. и т.п. вплоть до удаления таблиц в момент выхода.
Боль для попы, одним словом.

Мда, решение было намного ближе.
Спасибо за помогу.

P.S. Смотрите почту :-)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access 2000 & Oracle (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]