Создание связанных таблиц в Access to SQL server через роль приложения - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь создать связанные таблицы с таблицами SQL Server в MS Access с помощью сценария VBA. В настоящее время у меня есть следующее, которое отлично работает:

strConnect = "ODBC;DSN=xxx;Trusted_Connection=Yes;" & _
                        "APP=Microsoft Office;DATABASE=myDB;ApplicationIntent=READONLY;"
    aSourceTable = Array("dmy.Tab1", "dmy.Tab2", "dmy.Tab3", "dmy.Tab4")

    For X = 0 To UBound(aSourceTable)
        Set t = New TableDef
        t.Connect = strConnect
        t.NAME = Replace(aSourceTable(X), "dmy.", "") ' remove schema
        t.SourceTableName = aSourceTable(X)
        CurrentDb.TableDefs.Append t
    Next X

Где xxx - имя сервера данных, а myDB - база данных, к которой я хочу подключиться.

Теперь я пытаюсь воссоздать те же связанные таблицы, но соединение ODBC с сервером SQL должно проходить через роль приложения (которая уже была создана в SQL). Есть идеи, как это сделать? Я попытался заполнить параметр UID / Password в строке подключения, но это, похоже, не работает.

Я уже создал роль приложения:

Имя - tempapprole

Pwd - временный пароль

Большое спасибо,

Ник

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

это работает для меня, чтобы подключиться к MS SQL-Server:

Dim Conn As New ADODB.Connection
Conn.ConnectionString = "DSN=" & myDB & ";UID=" & tempapprole & ";PWD=" & temppassword
Conn.Provider = "msdasql"
Conn.Open
0 голосов
/ 04 апреля 2019

Вы можете попробовать следующим образом-

Dim strConnect As New OleDb.OleDbConnection
strConnect.ConnectionString = "provider=microsoft.jet.oledb.4.0;data 
source=TABELS.mdb"
strConnect.Open()
aSourceTable = Array("dmy.Tab1", "dmy.Tab2", "dmy.Tab3", "dmy.Tab4")

For X = 0 To UBound(aSourceTable)
    Set t = New TableDef
    t.Connect = strConnect
    t.NAME = Replace(aSourceTable(X), "dmy.", "") ' remove schema
    t.SourceTableName = aSourceTable(X)
    CurrentDb.TableDefs.Append t
Next X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...