powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создать программно источник данных компьютера
11 сообщений из 11, страница 1 из 1
Создать программно источник данных компьютера
    #40127854
smasspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день знатоки.
Прошу помощи.
У меня есть база размещенная на SQL.
Непосредственно в самом ACCESS таблицы из сервера прилинкованы.
Проблема вот в чем.
Если я перемещу файл ACCESS на другой компьютер, то потребуется перелинковка таблиц. И вот тут возникает затык.
Нужно сначала вручную создать источник данных компьютера штатными средствами (смотри фото).

Хотелось бы, что бы создание этого источника проходило в автоматическом режиме при его отсутствии на компьютере (т.е. мне не пришлось бы настраивать каждый новый компьютер).

Все таблицы линкуются вот по этим данным

ODBC;DSN=normatest_sql;Description=ODBC;Trusted_Connection=Yes;APP=Microsoft Office;DATABASE=НСЕРТ;Encrypt=Yes;TrustServerCertificate=Yes

Сейчас когда я перемещаю файл ACCESS на другой компьютер программа пытается перелинковать таблицы, но выводит сообщение об отсутствии подключения normatest_sql .

Если его создать один раз вручную то проблем больше не возникает.

Вроде понятно пояснил. Прошу помощи
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127872
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Разучи написание строки подключения или тупо скоммунизди ее из своего файла подключения
2. Подключись строкой.
3. И будет тебе щастье. Незадорого.


Код: vbnet
1.
2.
3.
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
                        "DBQ=" + file + ";" & _
                        "ReadOnly=TRUE;"
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127873
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smasspb,

по сабжу : How can I programmatically create a DSN?

но это "тупиковый ход"
Куда проще "лепить" строку подключения налету (возможно из хранящихся в БД параметров) и рефрешить линк в какой-то процедуре, в АутоЭкзеке
Типа такого 17342519
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127953
smasspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
по ссылке которую вы приложили How can I programmatically create a DSN код мне подошел.
Но прошу еще помочь вот в чем.
По той ссылке в самом начале кода есть объявление функции
Код: vbnet
1.
2.
3.
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, ByVal fRequest As Long, _
    ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long


Код прекрасно срабатывает на 32 битном офисе. Но не хочет работать на 64 битном.
Пишет что не правильно объявлены переменные и нужно переписать код под 64 бит.

А в идеале код необходим как для 32 бит так и для 64 офиса, в зависимости от того что установлено у пользователя

Можете помочь с этим?
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127964
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smasspb,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
#If Win64 Then
     Private Declare PtrSafe Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
         ByVal hwndParent As Long, ByVal fRequest As Long, _
         ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
#Else
     Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
         ByVal hwndParent As Long, ByVal fRequest As Long, _
         ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
#End If
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127981
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего нужно исправить
court
smasspb,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
#If Win64 Then
     Private Declare PtrSafe Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
         ByVal hwndParent As LongPtr, ByVal fRequest As Long, _
         ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
#Else
     Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
         ByVal hwndParent As Long, ByVal fRequest As Long, _
         ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
#End If

...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40127985
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smasspb
court,
по ссылке которую вы приложили How can I programmatically create a DSN код мне подошел.
Но прошу еще помочь вот в чем.
По той ссылке в самом начале кода есть объявление функции
Код: vbnet
1.
2.
3.
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
    (ByVal hwndParent As Long, ByVal fRequest As Long, _
    ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long


Код прекрасно срабатывает на 32 битном офисе. Но не хочет работать на 64 битном.
Пишет что не правильно объявлены переменные и нужно переписать код под 64 бит.

А в идеале код необходим как для 32 бит так и для 64 офиса, в зависимости от того что установлено у пользователя

Можете помочь с этим?


Любит наш народ создавать себе трудности и героически их преодолевать...
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40128003
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

На самом деле в 99,99999 % случаев адаптация функции под 64 разряда заключается в следующем:
1. Перед Function вставляем PtrSafe
2. Если на конце функции стоит As Long, меняем его на LongPtr, внутри параметры не трогаем...
Лично меня всякие теории, что это всё не так и на самом деле всё по другому не интересуют от слова совсем,
по причине того, что на практике именно это работает всегда и везде...
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40128093
smasspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю всех за помощь
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40128134
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
aleks222,

На самом деле в 99,99999 % случаев адаптация функции под 64 разряда заключается в следующем:
1. Перед Function вставляем PtrSafe
2. Если на конце функции стоит As Long, меняем его на LongPtr, внутри параметры не трогаем...
Лично меня всякие теории, что это всё не так и на самом деле всё по другому не интересуют от слова совсем,
по причине того, что на практике именно это работает всегда и везде...


На практике - надо собрать строку подключения.
И все.
Это самое практичное.
Со всем остальным разбирается сам Access.
...
Рейтинг: 0 / 0
Создать программно источник данных компьютера
    #40128153
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
На практике - надо собрать строку подключения.

в разрезе dns, наверное да...
в разрезе второго вопроса ТС в этом топике,- уже под вопросом...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создать программно источник данных компьютера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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