Public Declare Function SQLDataSources Lib "ODBC32.DLL" _ (ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, _ ByVal cbDSNMax As Integer, ByRef pcbDSN As Integer, ByVal szDescription As String, _ ByVal cbDescriptionMax As Integer, ByRef pcbDescription As Integer) As Long Public Declare Function SQLAllocEnv Lib "ODBC32.DLL" (env As Long) As Integer public Sub GetDSNsAndDrivers() 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 'Zugriffsnummer zur Umgebung On Error Resume Next cmbDataName.AddItem "(---)" cmbDataDriver.AddItem "(---)" 'DSNs abrufen If SQLAllocEnv(lHenv) <> -1 Then Do Until i <> SQL_SUCCESS sDSNItem = Space(1024) sDRVItem = Space(1024) ' Aufruf der API Funktion zur Ausgabe der n?chsten ODBC ' Verbindung 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 cmbDataDriver.AddItem sDRV cmbDataName.AddItem sDSN End If Loop End If
(ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, _
ByVal cbDSNMax As Integer, ByRef pcbDSN As Integer, ByVal szDescription As String, _
ByVal cbDescriptionMax As Integer, ByRef pcbDescription As Integer) As Long
Public Declare Function SQLAllocEnv Lib "ODBC32.DLL" (env As Long) As Integer
public Sub GetDSNsAndDrivers()
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 'Zugriffsnummer zur Umgebung On Error Resume Next
cmbDataName.AddItem "(---)"
cmbDataDriver.AddItem "(---)"
'DSNs abrufen
If SQLAllocEnv(lHenv) <> -1 Then
Do Until i <> SQL_SUCCESS
sDSNItem = Space(1024)
sDRVItem = Space(1024)
' Aufruf der API Funktion zur Ausgabe der n?chsten ODBC
' Verbindung
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
cmbDataDriver.AddItem sDRV
cmbDataName.AddItem sDSN
End If
Loop
End If
End Sub