15 / 14 / 2
Регистрация: 25.06.2018
Сообщений: 41
1

Ошибка при выборе источника данных ODBC

20.11.2018, 12:55. Показов 3173. Ответов 4
Метки нет (Все метки)

Добрый день! Подскажите пожалуйста что не так в этой процедуре – вызов диалога выбора источника данных ODBC. Дело в том, что в Access 2003 работает а в Access Runtime 2007 при нажатии кнопки выдает ошибку «Приложение остановлено из-за ошибки выполнения». Проблема в том, что в Access Runtime нет Диспетчера связанных таблиц, а мне бы хотелось иметь возможность выбора источника данных.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub selFile1_Click()
   Dim wrkODBC As Workspace
   Dim gfni As Connection
    Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _
        "sa", "11111", dbUseODBC)
    
    Set gfni = wrkODBC.OpenConnection("Connection2", _
     dbDriverPrompt, False, "ODBC;DSN=;")
      
      Me.File1 = Trim(gfni.Connect)       
 
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2018, 12:55
Ответы с готовыми решениями:

Создание источника данных ODBC из командной строки
Можно ли каким-то образом создать источник данных ODBC (для доступа к базе Ms Access) из командной...

Ошибка при изменении источника данных
Здравствуйте форумчане. Есть 2 формы, договоры и Find, таблица договоры. Если создать...

Программное создание/изменение/удаление источника данных ODBC
Необходимо программно создавать/изменять/удалять источник данных ODBC. Кто знает - большая просьба...

MSSQL stored procedure. Возможно ли использование переменной в выборе источника данных??
MSSQL stored procedure. Возможно ли использование переменной в выборе источника данных?? Пример...

4
9701 / 4888 / 1191
Регистрация: 05.10.2016
Сообщений: 13,747
Записей в блоге: 1
20.11.2018, 13:19 2
Цитата Сообщение от SergeyPDM Посмотреть сообщение
Проблема в том, что в Access Runtime нет Диспетчера связанных таблиц, а мне бы хотелось иметь возможность выбора источника данных.
Всё правильно, там нет диспетчера.
Потому на старте приложения выполняем:
01. Проверку на доступность сервера данных
02. Если доступен, подключение всех таблиц ...
03. Если нет, сообщение с показом формы настройки ..
Значит:
- Должна быть специальная форма настроек параметров подключения
- Процедура подключения (по указанным настройкам)...

Как вы будете соединять одно с другим = масса вариаций ...
Я, например, храню настройки подключения в INI файле в папке приложения ...
0
15 / 14 / 2
Регистрация: 25.06.2018
Сообщений: 41
20.11.2018, 13:54  [ТС] 3
Форму аналог диспетчера я взял из приложения к книге учебная база "Чековая книжка" и вроде бы все работает если в поле File1 вручную записать имя базы и DNS связи обновляются. ODBC подключения к SQL серверу
0
9701 / 4888 / 1191
Регистрация: 05.10.2016
Сообщений: 13,747
Записей в блоге: 1
21.11.2018, 19:25 4
Цитата Сообщение от SergeyPDM Посмотреть сообщение
ODBC подключения к SQL серверу
Давно без MS SQL обхожусь, но когда-то делал так:
Кликните здесь для просмотра всего текста

По ADO ? где-то был вариант DAO ...
Внимание!
Требуется ссылка на библиотеку: Microsoft ADO Ext. x.x for DDL and Security
Пример Использования:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub TableConnect()
Dim sTableNameLocal As String
Dim sTableNameSRS As String
Dim sServerName As String
Dim sDBName As String
Dim userName As String
Dim userPW As String
Dim x As Long
 
'Задаём параметры подключения
'es - 25.12.2012
'--------------------------------------------------------------------
On Error GoTo TableConnect_Err
    sServerName = "192.168.0.1\SQLExpress"      ' IP и Имя сервера
'Или:
'   sServerName = "192.168.0.1\MSSQLSERVER"     ' IP и Имя сервера
    sDBName = "DB_Name"                         ' Имя базы данных
    
    userName = "DBUserName"                     ' Имя пользователя
    userPW = "12345678"                         ' Пароль
        
    sTableNameLocal = "Loc_TableName"           ' Локальное имя Таблицы  в тек БД
    sTableNameSRS = "Srs_TableName"             ' Имя Таблицы на Сервере (Исходное)
        
        
'Подключаем таблицу:
    x = esLinkTableADOX(sTableNameLocal, sTableNameSRS, sServerName, sDBName, userName, userPW)
    'тест
    If x > 0 Then MsgBox "Таблица: " & sTableNameSRS & " не подключена !!!!", vbCritical, "Ошибка подключения"
 
'Обновляем список таблиц
    CurrentDb.TableDefs.Refresh
    DoEvents
 
TableConnect_Bye:
    Exit Sub
 
TableConnect_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in procedure TableConnect", vbCritical, "Error!"
    Resume TableConnect_Bye
End Sub
Функция подключения:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Public Function esLinkTableADOX(sLocalTName As String, stRemTName As String, sServName As String, _
        sDbName As String, Optional sUserName As String, Optional sPassWord As String) As Long
 
'es 30.06.2011
'Подключение к таблице SQL Server с автоматическим созданием DSN (ADOX)
'При удачном подключениии возвращает = 0 (ноль), при неудачном = КОД ОШИБКИ (номер)
'-------------------------------------------------------------------------
'Требования:
'   Сссылка в References на "Microsoft ADO Ext. x.x for DDL and Security" (v 2.8 = работало)
'-------------------------------------------------------------------------
'Аргументы:
'   sLocalTName = Локальное Имя Таблицы
'   stRemTName  = Имя таблицы на сервере
'   sServName   = Имя сервера MS SQL
'   sDbName     = Имя базы данных SQL Server
'   sUserName   = Имя пользователя (Опционально)
'   sPassWord   = Пароль пользователя (Опционально)
'-------------------------------------------------------------------------
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim strConnect As String
    
'Формируем строку подключения
    If Len(sUserName) = 0 Then
        ' Если sUserName не указано, использовать доверенную проверку подлинности.
        strConnect = "ODBC;DRIVER=SQL Server;SERVER=" & sServName & ";DATABASE=" & sDbName & ";Trusted_Connection=Yes"
    Else
        '!!! ПРЕДУПРЕЖДЕНИЕ: Вместе с информацией о связанной таблице сохраняется имя пользователя и его пароль.
        strConnect = "ODBC;DRIVER=SQL Server;SERVER=" & sServName & ";DATABASE=" & sDbName & ";UID=" & sUserName & ";PWD=" & sPassWord
    End If
    
'Открываем каталог текущей базы
    Set cat.ActiveConnection = CurrentProject.Connection
    
'Если таблица с таким названием уже существует - Удаляем
    For Each tbl In cat.Tables
        If tbl.Name = sLocalTName Then cat.Tables.Delete tbl.Name
    Next
 
'Для наглядности
'    Debug.Print "Без таблицы " & sLocalTName & " - таблиц в базе = " & cat.Tables.Count
    
'Установка параметров таблицы
    With tbl
        .Name = sLocalTName
        Set .ParentCatalog = cat
        .Properties("Jet OLEDB:Link Provider String") = strConnect
        .Properties("Jet OLEDB:Remote Table Name") = stRemTName
        .Properties("Jet OLEDB:Create Link") = True
    End With
    
'Создаём новый обьект
    cat.Tables.Append tbl
 
'Обновляем список таблиц
    cat.Tables.Refresh
    DoEvents
 
'Для наглядности
'    Debug.Print "После создания таблицы " & sLocalTName & " - таблиц в базе = " & cat.Tables.Count
 
esLinkTableADOXBye:
    Set cat = Nothing
    Set tbl = Nothing
    Exit Function
 
esLinkTableADOXErr:
    esLinkTableADOX = Err.Number
    Debug.Print "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
            "in Function: esLinkTableADOX"
    Resume esLinkTableADOXBye
End Function

... чем могу ...
0
15 / 14 / 2
Регистрация: 25.06.2018
Сообщений: 41
22.11.2018, 08:55  [ТС] 5
Eugene-LS
Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2018, 08:55
Помогаю со студенческими работами здесь

MySQL ODBC 5.3 - В "Источника данных (ODBC) "драйвер присутствует на вкладке "Драйверы"
Проблема в следующем. Установил MySQL 5.6.24 (ОС - Windows 7 Professional). В "Источника данных...

Создание источника данных ODBC в Smart Install Maker 5.04
Добрый день. Существует программа с базой данных MySQL. Потребовалось создать инсталлятор. И...

Ошибка при настройке источника данных: Не удалось загрузить схему данных
Есть программа для учета заявок. Есть база на access. В базе есть табличка клиент(Имя, фамилия,...

Ошибка при настройке источника данных
Всем привет! Создаю подключение Получаю ошибку Переустанавливал и VS(2007) и SQL SERVER...

Ошибка при создании источника данных
Здравствуйте, помогите пожалуйста. Проблема заключается в следующем: Создал обычное оконное...

Ошибка при добавлении нового источника данных
Пытаюсь добавить подключение, но выходит ошибка о том, что поставщик не зарегистрирован. Изменение...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru