Доступ к строке подключения VBA 2010 для SQL Server 2017

Я унаследовал базу данных доступа 2010 (ADP) и пытаюсь понять строку подключения. Если бы кто-то мог помочь сломать это для меня, это было бы очень полезно. Не понимая, что все это значит. Я хочу в конечном итоге перейти на доступ к базе данных 2013 года со связанными таблицами.

Я исследовал весь интернет безрезультатно. Также будет переход на новый сервер, использующий sql server 2017. Моя самая большая проблема — понять, что такое i+16 и i2-i+16.

Вот что у меня есть:

Sub CheckDBName()
Dim m As String
Dim i As Integer
Dim i2 As Integer

On Error Resume Next
m = CurrentProject.Connection.ConnectionString
i = InStr(m, "Initial Catalog = ")
i2 = InStr(m, ";Data Provider = ")
m = Mid(CurrentProject.Connection.ConnectionString, (i + 16), 
(i2 - (i + 16)))

Какую часть вы не понимаете? Это просто основные манипуляции со строками, чтобы разбить части строки подключения.

Sean Lange 15.07.2019 23:38

Да, что сказал @SeanLange. Сначала код находит, где в строке подключения встречаются эти два ключевых термина, а затем выполняет простой синтаксический анализ строки для извлечения текста между ними. Обратите внимание, что «Исходный каталог =» имеет длину 16 символов — отсюда и «I + 16». Откровенно говоря, я не сторонник такого подхода, поскольку не гарантируется, что элементы строки подключения будут располагаться в том порядке, в котором требует опубликованный вами код.

Brian 15.07.2019 23:48

Я довольно новичок в этой области, пожалуйста, извините мое непонимание и спасибо за помощь.

Ladydraper 16.07.2019 17:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как объяснил Брайан в комментариях, этот код извлекает текст между строками «Initial Catalog=» и «;Data Provider=», другими словами, имя базы данных. Он правильно указал, что это может сломаться, если элементы строки подключения находятся в другом порядке. Чтобы избежать этого, я бы получил доступ к коллекции свойств Connection, например:

m = CurrentProject.Connection.Properties("Initial Catalog")

Другие вопросы по теме