模块Public Declare Function RegCloseKey Lib "advapi32" Alias "RegCloseKeyA" (ByVal hKey As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Public Declare Function RegSetValueNumEx Lib "advapi32" Alias "RegSetValueNumExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPublic Const HKEY_LOCAL_MACHINE = &H80000002
Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As LongPublic Const REG_SZ = 1
Public Const REG_BINARY = 3
Public Const REG_DWORD = 4
Public WinSysPath As StringPublic Function GetWinSysPath() As String
    Dim n As Long
    Dim TmpStr As String
    TmpStr = Space(255)
    n = GetSystemDirectory(TmpStr, 255)
    TmpStr = Trim(TmpStr)
    GetWinSysPath = Left(TmpStr, Len(TmpStr) - 1)
End Function类1 (ACCESS ODBC)
Public Function Create(ODBCName As String, DatabasePath As String) As Long
    
    Dim regTmp As Long  '新建的注册表值
    Dim n As Long       '对注册表操作返回值
    '获得WINDOWS系统目录
    WinSysPath = GetWinSysPath
    
    Dim DriveStr As String
    DriveStr = WinSysPath & "\odbcjt32.dll"
    
    n = RegCreateKey(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBC.INI\" & ODBCName, regTmp)
    
    n = RegSetValueEx(regTmp, "DBQ", 0, REG_SZ, DatabasePath, Len(DatabasePath))
    n = RegSetValueEx(regTmp, "Driver", 0, REG_SZ, DriveStr, Len(DriveStr))
    n = RegSetValueNumEx(regTmp, "DriverID", 0, REG_DWORD, 25, 4)
    n = RegSetValueEx(regTmp, "FIL", 0, REG_SZ, "MS Access;", 10)
    n = RegSetValueEx(regTmp, "UID", 0, REG_SZ, "", 0)
    
End FunctionPublic Function Delete(ODBCName As String) As Long
    
    On Error GoTo Err_Handle
    Dim regTmp As Long  '新建的注册表值
    Dim n As Long       '对注册表操作返回值
    
    n = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBC.INI\", regTmp)
    
    n = RegDeleteKey(regTmp, ODBCName)
    
    Delete = 0
    Exit Function
Err_Handle:
    Delete = -1
End Function
类2(SQLServer)Public Function Create(ODBCName As String, Server As String, User As String, Optional Database As String) As Long
    
    On Error GoTo Err_Handle
    Dim regTmp As Long  '新建的注册表值
    Dim n As Long       '对注册表操作返回值
    '获得WINDOWS系统目录
    
    WinSysPath = GetWinSysPath
    Dim DriveStr As String
    DriveStr = WinSysPath & "\SQLSRV32.dll"
    
    n = RegCreateKey(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBC.INI\" & ODBCName, regTmp)
    
    n = RegSetValueEx(regTmp, "Server", 0, REG_SZ, Server, Len(Server))
    n = RegSetValueEx(regTmp, "Driver", 0, REG_SZ, DriveStr, Len(DriveStr))
    n = RegSetValueEx(regTmp, "LastUser", 0, REG_SZ, User, Len(User))
    If Database <> "" Then
        n = RegSetValueEx(regTmp, "Database", 0, REG_SZ, Database, Len(Database))
    End If
    Create = 0
    Exit Function
Err_Handle:
    Create = -1
End FunctionPublic Function Delete(ODBCName As String) As Long
    
    On Error GoTo Err_Handle
    Dim regTmp As Long  '新建的注册表值
    Dim n As Long       '对注册表操作返回值
    
    n = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\ODBC\ODBC.INI\", regTmp)
    
    n = RegDeleteKey(regTmp, ODBCName)
    
    Delete = 0
    Exit Function
Err_Handle:
    Delete = -1
End Function