我在做一个人力资源管理系统,很简单的,在做员工信息界面的时候运行时输入数据后说无法获得连接句柄 ODBC API执行错误。 请哥哥姐姐们指点~~~~~~~   部分内容如下
在模块DbFunc(Dbfunc.bas)中'== 声明odbc32.dll中定义的ODBC API函数 ==
Public Declare Function SQLAllocEnv Lib "odbc32.dll" (phenv&) As Integer
Public Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal Henv&, phdbcd&) As Integer
Public Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal Hdbc&, phstmt&) As Integer
Public Declare Function SQLConnect Lib "odbc32.dll" (ByVal Hdbc&, ByVal szDSN$, _
ByVal cbDSN%, ByVal szUID$, ByVal cbUID%, ByVal szPWD$, ByVal cbPWD%) As Integer
Public Declare Function SQLColAttributes Lib "odbc32.dll" (ByVal Hstmt&, ByVal icol%, _
ByVal fDescType%, ByVal rgbDesc As String, ByVal cbDescMax%, pcbDesc%, pfDesc&) As Integer
Public Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal Hdbc&) As Integer
Public Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal Hstmt&, ByVal szSqlStr$, _
ByVal cbSqStr&) As Integer
Public Declare Function SQLFetch Lib "odbc32.dll" (ByVal Hstmt&) As Integer
Public Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal Hdbc&) As Integer
Public Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal Henv&) As Integer
Public Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal Hstmt&, ByVal fOption%) As Integer
Public Declare Function SQLGetData Lib "odbc32.dll" (ByVal Hstmt&, ByVal icol%, ByVal fCType%, _
ByVal rgbValue As String, ByVal cbValueMax&, pcbValue%) As Integer
Public Declare Function SQLNumResultCols Lib "odbc32.dll" (ByVal Hstmt&, pccol%) As Integer
Public Declare Function SQLGetDiagRec Lib "odbc32.dll" (ByVal HandleType%, ByVal Handle&, _
ByVal RecNumber%, Sqlstate%, NativeErrorPtr%, MessageText As String, _
ByVal Bufferlenchgth%, TextlenchgthPtr%)
'== 标记数据库是否连接 ==
Private IsConnect As Boolean
'== 标记执行Connect()函数后,访问数据库的次数 ==
Private Connect_Num As Integer
Private Henv As Long     '环境句柄
Private Hdbc As Long     '连接句柄
Private Rc As Long
Public Hstmt As Long'连接数据库
Private Sub Connect()
  Dim TmpStat As Long  'SQLConnect()函数的返回值
  '如果连接标记为真,则返回。否则会出错
  If IsConnect = True Then
    Exit Sub
  End If
  '分配环境句柄,保存在变量Henv中
  If SQLAllocEnv(Henv) Then
    MsgBox "无法初始化ODBC环境!", , "ODBC API执行错误"
    End
  End If
  '根据环境句柄,分配连接句柄,保存在变量Hdbc中
  If SQLAllocConnect(Henv, Hdbc) Then
    MsgBox "无法连接ODBC!", , "ODBC API执行错误"
    End
  End If
  '根据连接句柄、数据源、用户名和密码连接指定的数据库
  TmpStat = SQLConnect(Hdbc, DSN, Len(DSN), DB_USER_NAME, _
            Lench(DB_USER_NAME), DB_PASSWORD, Len(DB_PASSWORD))
  '如果连接不成功则退出程序
  If TmpStat <> SQL_SUCCESS And _
     TmpStat <> SQL_SUCCESS_WITH_INFO Then
    MsgBox "无法获得连接句柄!", , "ODBC API执行错误"
    IsConnect = True
    Disconnect
    End
  End If
  '设置连接标记
  IsConnect = True
End Sub在类模块中的插入函数Public Sub insert()
Dim sqlstmt As String
DB_Connect
sqlstmt = "insert into employees(emp_name,emp_sex,emp_minzu,emp_level,emp_marital,emp_age,emp_party,emp_card,emp_memo)values(" + Trim(emp_name) + "," + Trim(emp_sex) + "," + Trim(emp_minzu) + "," + Trim(emp_level) + "," + Trim(age) + "," + Trim(emp_marital) + "," + Trim(emp_party) + "," + Trim(emp_card) + "," + Trim(emp_memo) + ")"
OdbcExt (sqlstmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub在插入数据是显示  (无法获得连接句柄!ODBC API执行错误)