这是以前帖子上有的,我给抄过来了,先谢谢那位:)
设置ODBC数据源的方法先在窗体中添加三个textbox控件,名分别是txtPathToData、txtDsnName、txtDriver,一个CommonDialog1,一个控纽名为cmdBrowse,一个控纽名cmdAddDSN。
下面是代码,考过去即可Private Declare Function SQLConfigDataSource Lib "odbccp32.dll" ( _
   ByVal hwndParent As Long, _
   ByVal fRequest As Integer, _
   ByVal lpszDriver As String, _
   ByVal lpszAttributes As String) As LongPrivate Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As LongPrivate Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" ( _
   ByVal hKey As Long, _
   ByVal lpValueName As String, _
   ByVal lpReserved As Long, _
   ByRef lpType As Long, _
   ByVal lpData As String, _
   ByRef lpcbData As Long) As LongPrivate Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
   ByVal hKey As Long, _
   ByVal lpSubKey As String, _
   ByVal Reserved As Long, _
   ByVal samDesired As Long, _
   phkResult As Long) As Long   Private Const REG_BINARY& = 3                 ' Free form binary
   Private Const REG_SZ& = 1                     ' Unicode null terminated string
   Private Const HKEY_CURRENT_USER& = &H80000001
   Private Const HKEY_LOCAL_MACHINE& = &H80000002
   Private Const KEY_ALL_ACCESS& = &H2003F'系统DSN特性仅在 ODBC 2.5以上环境下有效
Public Enum ACTION
   ODBC_ADD_DSN& = 1            ' 添加一个用户数据源(DSN)
   ODBC_CONFIGURE_DSN& = 2      ' 配置已存在的用户数据源DSN
   ODBC_REMOVE_DSN& = 3         ' 删除一个指定的数据源
   ODBC_ADD_SYS_DSN& = 4        ' 添加一个系统数据源(DSN)
   ODBC_CONFIG_SYS_DSN& = 5     ' 修改一个已存在的系统数据源(DSN)
   ODBC_REMOVE_SYS_DSN = 6      ' 删除指定的已存在的系统数据源(DSN)
   ODBC_REMOVE_DEFAULT_DSN& = 7 ' 删除缺省的数据源
End EnumPublic Sub ConfigureSystemDSN(ByVal sDSN As String, _
   ByVal sDriver As String, _
   ByVal sDBFile As String, _
   ByVal eAction As ACTION _
   )   Dim sAttributes   As String
   Dim sDBQ          As String
   Dim sRegValue     As String
   Dim lRetVal       As Long
   Dim hKey          As Long
   Dim lValueType    As Long
   Dim sMessage      As String   If RegOpenKeyEx(HKEY_CURRENT_USER, _
      "Software\ODBC\ODBC.INI\" & sDSN, _
      0, _
      KEY_ALL_ACCESS, hKey _
      ) = 0 Then      sRegValue = String(1024, 0)      If RegQueryValueEx(hKey, _
         "DBQ", _
         0, _
         lValueType, _
         sRegValue, _
         Len(sRegValue) _
         ) = 0 Then         If lValueType = REG_SZ Then
            sDBQ = Left(sRegValue, InStr(sRegValue, vbNullChar) - 1)
         End If
      End If      RegCloseKey hKey
   End If   If (sDBQ = "" And (eAction = ODBC_ADD_DSN Or eAction = ODBC_ADD_SYS_DSN)) _
   Or _
      (sDBQ <> "" And (eAction = ODBC_REMOVE_DSN Or eAction = ODBC_CONFIGURE_DSN)) Then      If Len(Dir(sDBFile)) = 0 Then
         MsgBox "数据库文件不存在!", vbOKOnly + vbCritical, "错误,无法继续"
      Else
         sAttributes = "DSN=" & sDSN & vbNullChar & "DBQ=" & sDBFile & vbNullChar
         lRetVal = SQLConfigDataSource(0&, eAction, sDriver, sAttributes)
         MsgBox "完成!"
      End If
   Else
      If eAction = ODBC_ADD_DSN Or _
         eAction = ODBC_ADD_SYS_DSN Then         sMessage = " 已经存在!"
      Else
         sMessage = " 不存在!"
      End If      MsgBox "DSN: " & txtDsnName.Text & sMessage
   End IfEnd Sub
Private Sub cmdAddDSN_Click()   ConfigureSystemDSN txtDsnName.Text, txtDriver.Text, txtPathToData, ODBC_ADD_DSNEnd Sub
Private Sub cmdBrowse_Click()   With CommonDialog1
      .Filter = "*.*"
      .ShowOpen      txtPathToData = .FileName
   End WithEnd Sub