Как получить связанные таблицы сервера SQL связаны с использованием VBA? - PullRequest
0 голосов
/ 26 мая 2019

Есть ли способ узнать, на какой SQL Server ссылаются связанные таблицы в базе данных MS Access при использовании соединения ODBC?

Я использовал приведенный ниже код, но получил только имя базы данных, а не имя сервера SQL.

Private Function checkconn()

Dim strConnect As String
Dim lngLocation As String

strConnect = CurrentDb.TableDefs("dbo_buh_summary").Connect
lngLocation = InStr(strConnect, ";DATABASE=")
If lngLocation <> 0 Then
GetDataPath = Mid(strConnect, lngLocation + 10)
End If

End Function

1 Ответ

1 голос
/ 26 мая 2019

Предполагается, что вы использовали ФАЙЛ DSN для исходной связи таблиц? (или DSN меньше). Я настоятельно, но довольно настоятельно рекомендую вам ссылаться всегда с помощью ФАЙЛА DSN (а не системы или пользователя). Причина в том, что Access автоматически конвертирует эти ссылки в DSN-less. (и поэтому вам не нужно настраивать DSN на каждом компьютере).

Отметив вышесказанное? Вы можете получить имя сервера и базы данных с помощью:

Sub m34343()

  Dim strCon     As String

  strCon = CurrentDb.TableDefs("dbo_tblHotels3").Connect
  Debug.Print strCon

  Debug.Print Split(Split(strCon, "SERVER=")(1), ";")(0)
  Debug.Print Split(Split(strCon, "DATABASE=")(1), ";")(0)


End Sub

Выход:

ODBC;DRIVER=SQL Server;SERVER=ALBERTKALLAL-PC\SQLEXPRESS;
     Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=test3

ALBERTKALLAL-PC\SQLEXPRESS
test3

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...