|
|
|
| При соединении Акса с сервером SQL создается Источник данных ODBC
можно этот источник создать средствами VBA?
что бы не лазить Пуск - Настройка - Панель Управления - Администрирование - Источники данных (ODBC) | |
|
| |
|
22 Кб. |
|
| Почитай вложение. Может поможет. -> | |
|
| |
|
|
|
|
|
Option Compare Database
Option Explicit
'Const ODBC_ADD_SYS_DSN = 1 'Add a user data source
Const ODBC_CONFIG_SYS_DSN = 2 'Configure (edit) data source
Const ODBC_REMOVE_SYS_DSN = 3 'Remove data source
Const ODBC_ADD_SYS_DSN = 4 'Add a system data source
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal _
hwndParent As Long, ByVal fRequest As Long, ByVal _
lpszDriver As String, ByVal lpszAttributes As String) As Long
Function Build_SystemDSN()
Dim Driver As String
Dim Ret As Long
Dim Attributes As String
Driver = "SQL Server"
'attributes are the connection information
Attributes = "server=ANSRLTR" & Chr(0)
Attributes = Attributes & "DSN=DSN_Temp" & Chr(0)
Attributes = Attributes & "Database=ANSRLTR_Prod" & Chr(0)
'use this line if you want to use the users name and password
'Attributes = Attributes & "Trusted_Connection=Yes" & Chr(0)
'use this line if you are adding a username and password
Attributes = Attributes & "Uid=Temp;" & Chr(0) & "Pwd=TempID" & Ch(0)
Ret = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, Driver, Attributes)
'ret is equal to 1 on success and 0 if there is an error
If Ret <> 1 Then
MsgBox "DSN Creation Failed"
End If
End Function
|
| |
|
| |
|
|
|
| DBEngine.RegisterDatabase | |
|
| |
|
|
|
| Спасибо - поизучаю
пока удалось обмануть вот так
CurrentDb.QueryDefs("Запрос1").Connect = "ODBC;DRIVER=SQL Server;SERVER=GOSKONTROL\IAS_RPN; UID=Пользователь;PWD=Пользователь;DATABASE=RPN_2;LANGUAGE=us_english;Network=DBMSSOCN" | |
|
| |
|
|
|
| вот ссылка еще
http://support.microsoft.com/kb/892490 | |
|
| |
|
|
|
| А какой у вас Акс? По А2003, ИМХО, в св-ве Connect таблицы/сохраненного запроса такой синтаксис (указание в строке имени драйвера или провайдера) не работало. Только "ODBC;DSN=Имя..."
Может ошибаюсь? | |
|
| |
|
|
|
| 2003
я для запросов к серверу использую
сначала создаю свою базу2 на сервере (которая тянет инфу из другой базы1 с таблами)
а потом запросами вытягиваю инфу - использую базу1 только на чтение (напрямую коннектится тяжко - слишком база мудреная в моем понимании, да и запросы на сервере бысрее работают)
с таблицами не пробывал - завтра попробую, хотя на sql.ru, где я нашел код, пример был конкретно на таблы ориентирован | |
|
| |
|
|
|
| Где то прочитал, что без одбс работает быстрее ...
google odbc-less | |
|
| |
|
|
|
| Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUsername) = 0 Then
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
End Function
AttachDSNLessTable ("authors", "authors", "(local)", "pubs", "", "") | |
|
| |