Назад | Перейти на главную страницу

сделать доступ Microsoft Access использовать TCP / IP вместо именованных каналов

У меня есть база данных Microsoft Access, которая постоянно пытается связаться с соответствующим Microsoft SQL Server, используя именованные каналы, хотя доступен только TCP / IP, а ODBC настроен на использование TCP / IP. Невозможно снова связать все таблицы с работающим ODBC.

Как я могу это исправить?

В моем случае пример Самсмита не сработал.

Однако я исправил это, используя что-то вроде этого:

    Dim DB As DAO.Database
    Set DB = CurrentDb
    Dim Tdf As TableDef

    'Loops through list of tables
    For Each Tdf In DB.TableDefs
        If Tdf.SourceTableName <> "" Then
          'this checks if it actually is a odbc table as i do not want to change the connection string of local tables obviously
          If Not InStr(Tdf.Connect, "ODBC") = 0 And Not (Tdf.Attributes And
dbAttachedODBC) = 0 Then
              Tdf.Connect = "ODBC;DSN=xxx;APP=MicrosoftR Access;WSID=A2200;DATABASE=xxx;Network=DBMSSOCN;TABLE=dbo." & Tdf.Name
              Tdf.RefreshLink 'Saves the changes made
          End If
        End If
    Next
Debug.Print "Finished!"

В Network=DBMSSOCN это ключевая часть, это указывает на то, что следует использовать TCP.

Используйте приложение конфигурации клиента SQL («Сетевая утилита клиента» в старых версиях SQL), настройте именованную службу (также известную как «псевдоним»), которая использует tcpip для подключения к серверу. Настройте приложение Access на использование созданной вами именованной службы / псевдонима.

В более поздних версиях SQL это делается с помощью инструмента «Диспетчер конфигурации SQL Server» в области «Конфигурация собственного клиента SQL», где вы можете создать псевдоним.

Другой подход, который работает для ADO, и я считаю, что ODBC: в строке подключения укажите сервер и порт. В языке SQL это делается с помощью запятой:

<sql server name or ip>,<port>

например

mysqlserver2008instance,1433