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

Заранее благодарен.
...
Рейтинг: 0 / 0
05.09.2003, 18:45
    #32257449
Access 2000 & Oracle (+)
Для 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
08.09.2003, 13:17
    #32258390
supertim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2000 & Oracle (+)
Спасибо Дмитрию Басовскому за помощь :-)

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

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

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

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

Код: 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
10.09.2003, 17:17
    #32261518
supertim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access 2000 & Oracle (+)
2 Дмитрий Басовский

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

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

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


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