|
|
|
| База mdb подключается к серверу через DSN. На сервере несколько баз, доступ к ним периодически меняется. Как из акса через ВБ получить список достпных баз на сервере?если можно с примером кода. | |
|
| |
|
|
|
| это не поможет?
http://ssy.mccinet.ru/odbc_1.html
Если нет, то поищу у себя где-то была функция.... | |
|
| |
|
|
|
| Может и помогло бы, да с IP проблема у меня. А проще это никак не можно сделать? ну очень надо | |
|
| |
|
|
|
| где-то содрал
Declare Function SQLDataSources Lib "odbc32.dll" (ByVal HENV As Long, _
ByVal Direction As Long, _
ByVal DSN As String, _
ByVal DSNMax As Integer, _
ByRef DSNLen As Integer, _
ByVal Description As String, _
ByVal DescriptionMax As Integer, _
ByRef DescriptionLen As Integer) As Integer
Declare Function SQLAllocEnv Lib "odbc32.dll" (ByRef HENV As Long) As Integer
Const SQL_SUCCESS As Long = 0
Const SQL_FETCH_NEXT As Long = 1
'
Function ODBC_GetListDSN()
Dim i As Integer
Dim sDSNItem As String * 1024
Dim sDRVItem As String * 1024
Dim sDSN As String
Dim sDRV As String
Dim iDSNLen As Integer
Dim iDRVLen As Integer
Dim lHenv As Long
On Error Resume Next
'получаем DSN's
If SQLAllocEnv(lHenv) <> -1 Then
Do Until i <> SQL_SUCCESS
sDSNItem = Space$(1024)
sDRVItem = Space$(1024)
i = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem, 1024, _
iDSNLen, sDRVItem, 1024, iDRVLen)
sDSN = Left$(sDSNItem, iDSNLen)
sDRV = Left$(sDRVItem, iDRVLen)
If sDSN <> Space(iDSNLen) Then
Debug.Print sDSN, sDRV
End If
Loop
End If
End Function
|
| |
|
| |
|
|
|
| Спасибо Олег, в который раз выручаете! Буду пробовать ... | |
|
| |
|
|
|
| а так можно виндовую формочку ODBC посмотреть:
Call Shell("ODBCAD32.EXE", vbNormalFocus) | |
|
| |