вопрос по добавлению источника ODBC

civil
Дата: 28.02.2008 10:13:57
Есть база данных, чтобы она работала я руками указываю на источник ODBC через панель управления-администрирование-источник данных ODBC - пользовательский DSN - драйвер и т.д.
А можно ли этот процесс автоматизировать? то есть одновременно перед запуском программы исполнялся какой-нить макрос, добавлял один и тот же драйвер и далее уже запускался?
Ёжик`
Дата: 28.02.2008 10:19:37
Public Sub DSN_Create()
Dim Str As String
Str = "Database=econ" & _
      vbCr & "Description=Экономика на MSSQL2005" & _
      vbCr & "Server=serv" & _
      vbCr & "Network=DBMSSOCN" & _
      vbCr & "Trusted_Connection=yes"
DBEngine.RegisterDatabase "EconSql", "SQL Server", True, Str
End Sub
'Если DSN с таким именем есть, то его данные обновятся.
'Потом просто реконнектишь таблицы,для каждой таблицы делаешь:


Public Sub DSN_Refresh()
DoCmd.Hourglass True

Dim dbCurrent As DAO.Database
Dim tdfCurrent As DAO.TableDef
Dim r As DAO.Recordset

Call DSN_Create
Set dbCurrent = DBEngine.Workspaces(0).Databases(0)

For Each tdfCurrent In dbCurrent.TableDefs
    If tdfCurrent.Connect <> "" Then
        tdfCurrent.Connect = "ODBC;DSN=EconSql;Server=serv;Address=serv;DATABASE=econ"
        tdfCurrent.RefreshLink
    End If
Next
DoCmd.Hourglass False
End Sub
civil
Дата: 28.02.2008 10:30:32
спасибо :)
3asid
Дата: 25.05.2009 16:43:13
а если мне надо создать с параметром Trusted_Connection=NO, то как прописать логин и пароль?
Guest33
Дата: 25.05.2009 22:20:36
Public Sub DSN_Create()
Dim Str As String
Str = "Database=econ" & _
      vbCr & "Description=Экономика на MSSQL2005" & _
      vbCr & "Server=serv" & _
      vbCr & "Network=DBMSSOCN" & _
      vbCr & "Trusted_Connection=no"
DBEngine.RegisterDatabase "EconSql", "SQL Server", True, Str
End Sub
'Если DSN с таким именем есть, то его данные обновятся.
'Потом просто реконнектишь таблицы,для каждой таблицы делаешь:


Public Sub DSN_Refresh()
DoCmd.Hourglass True

Dim dbCurrent As DAO.Database
Dim tdfCurrent As DAO.TableDef
Dim r As DAO.Recordset

Call DSN_Create
Set dbCurrent = DBEngine.Workspaces(0).Databases(0)

For Each tdfCurrent In dbCurrent.TableDefs
    If tdfCurrent.Connect <> "" Then
        tdfCurrent.Connect = "ODBC;DSN=EconSql;Server=serv;Address=serv;DATABASE=econ;" &  _     
        "uid=sa;pwd=mypassword"
        tdfCurrent.RefreshLink
    End If
Next
DoCmd.Hourglass False
End Sub

Guest33
Дата: 25.05.2009 22:23:20
Поправка: "Trusted_Connection=false"