С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
15 / 14 / 2
Регистрация: 25.06.2018
Сообщений: 41

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

20.11.2018, 12:55. Показов 4275. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2018, 12:55
Ответы с готовыми решениями:

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

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

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

4
Эксперт MS Access
 Аватар для Eugene-LS
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,429
20.11.2018, 13:19
Цитата Сообщение от SergeyPDM Посмотреть сообщение
Проблема в том, что в Access Runtime нет Диспетчера связанных таблиц, а мне бы хотелось иметь возможность выбора источника данных.
Всё правильно, там нет диспетчера.
Потому на старте приложения выполняем:
01. Проверку на доступность сервера данных
02. Если доступен, подключение всех таблиц ...
03. Если нет, сообщение с показом формы настройки ..
Значит:
- Должна быть специальная форма настроек параметров подключения
- Процедура подключения (по указанным настройкам)...

Как вы будете соединять одно с другим = масса вариаций ...
Я, например, храню настройки подключения в INI файле в папке приложения ...
0
15 / 14 / 2
Регистрация: 25.06.2018
Сообщений: 41
20.11.2018, 13:54  [ТС]
Форму аналог диспетчера я взял из приложения к книге учебная база "Чековая книжка" и вроде бы все работает если в поле File1 вручную записать имя базы и DNS связи обновляются. ODBC подключения к SQL серверу
0
Эксперт MS Access
 Аватар для Eugene-LS
12058 / 5843 / 1492
Регистрация: 05.10.2016
Сообщений: 16,429
21.11.2018, 19:25
Цитата Сообщение от 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  [ТС]
Eugene-LS
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2018, 08:55
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru