использование удаленной базы данных Access MS, которая соединяется с удаленным SQL-сервером

svn+ssh://<hostname>/path/to/svn/repo

1
задан 9 March 2011 в 01:15
2 ответа

Можно избавить от необходимости локальный DSN на каждой машине при помощи небольшого количества кода в базе данных Access. Вам действительно, конечно, все еще нужен соответствующий установленный драйвер ODBC, но я ожидаю тот, в котором Вы нуждаетесь, является, вероятно, стандартным в Windows так или иначе.

Локальный DSN потребуется, чтобы первоначально создавать базу данных.

Следующее в том, что я использую для того, чтобы динамично повторно связаться с базой данных MySQL, таким образом, необходимо будет отредактировать его соответственно. Код называют от макроса AutoExec или можно выполнить вручную или от формы.

Обратите внимание, что это не мой код, но я использовал его в течение очень долгого времени и не вспоминаю, где я первоначально получил его. Все, что я сделал, является редактированием это для удовлетворения моим требованиям.

Option Compare Database

Public Function ReLinkTables()

Dim dbPUBS As DAO.Database
Dim tdfPUBS As DAO.TableDef
Dim strTable As String
Dim strConnect As String
Dim InFile As Integer


' Set the following variables tosuit your DB connection
Dim Server As String
Dim Database As String
Dim User As String
Dim Password As String

On Error GoTo 0
Set dbPUBS = Nothing
Set dbPUBS = CurrentDb
strConnect = "DRIVER={MySQL ODBC 3.51 Driver};" _
    & "SERVER=" & Server & ";" _
    & "DATABASE=" & Database & ";" _
    & "UID=" & User & ";" _
    & "PWD=" & Password & ";" _
    & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

' Refresh Access linked tables
For Each tdfPUBS In dbPUBS.tabledefs
    ' Only attempt to refresh link on tables that already
    ' have a connect string (linked tables only)
    If Len(tdfPUBS.Connect) > 0 Then
        strTable = tdfPUBS.Name

        ' Set the tables connection string
        tdfPUBS.Connect = strConnect

        ' and refresh the link
        tdfPUBS.RefreshLink
    End If
Next

' Refresh Connect String for all Pass-Through Queries
'strMsg = "Refreshing links for all Pass Through Queries."
'DoCmd.Echo True, strMsg
'For Each qdfPUBS In dbPUBS.QueryDefs
    'If Len(tdfPUBS.Connect) > 0 Then
        'qdfPUBS.Connect = strConnect
    'End If
'Next

Конечная функция

1
ответ дан 3 December 2019 в 22:13

Не используйте DSN при определении ссылки на SQL Server. Вместо этого укажите строку фактического соединения (должна быть опция, но я не работал с Доступом в течение многих лет).

1
ответ дан 3 December 2019 в 22:13

Теги

Похожие вопросы