代码如下:
Private Sub Form_Load()
Dim temprecordset As adodb.Recordset
Dim txtsql As String
Dim msgtext As String
Dim i As Integer
combosex.AddItem "男"
combosex.AddItem "女"
combotype.AddItem "硕士"
combotype.AddItem "博士"
combotype.AddItem "博士后"
txtsql = "select name from graduateuser.director_info"
Set temprecordset = executesql(txtsql, msgtext)
For i = 1 To temprecordset.RecordCount
combodirector.AddItem temprecordset.Fields(0)
temprecordset.MoveNext
Next i
temprecordset.Close
End Sub标准模块中的executesql 函数如下:
Public Function executesql(ByVal sql As String, msgstring As String) As adodb.Recordset
Dim conn As adodb.Connection
Dim rest As adodb.Recordset
On Error GoTo executesql_error
Set conn = New adodb.Connection
conn.Open connectstring
Set rest = New adodb.Recordset
rest.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
Set executesql = rest
msgstring = "查询到" & rest.RecordCount & "条记录"
executesql_exit:
Set rest = Nothing
Set conn = Nothing
Exit Function
executesql_error:
msgstring = "查询错误" & _
Err.Description
Resume executesql_exit
End Function
运行是说:实时错误91,对象变量或with 块对象未设置的错误。
怎么回事呀?
调试后错误定位在这个位置:
For i = 1 To temprecordset.RecordCount
Private Sub Form_Load()
Dim temprecordset As adodb.Recordset
Dim txtsql As String
Dim msgtext As String
Dim i As Integer
combosex.AddItem "男"
combosex.AddItem "女"
combotype.AddItem "硕士"
combotype.AddItem "博士"
combotype.AddItem "博士后"
txtsql = "select name from graduateuser.director_info"
Set temprecordset = executesql(txtsql, msgtext)
For i = 1 To temprecordset.RecordCount
combodirector.AddItem temprecordset.Fields(0)
temprecordset.MoveNext
Next i
temprecordset.Close
End Sub标准模块中的executesql 函数如下:
Public Function executesql(ByVal sql As String, msgstring As String) As adodb.Recordset
Dim conn As adodb.Connection
Dim rest As adodb.Recordset
On Error GoTo executesql_error
Set conn = New adodb.Connection
conn.Open connectstring
Set rest = New adodb.Recordset
rest.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
Set executesql = rest
msgstring = "查询到" & rest.RecordCount & "条记录"
executesql_exit:
Set rest = Nothing
Set conn = Nothing
Exit Function
executesql_error:
msgstring = "查询错误" & _
Err.Description
Resume executesql_exit
End Function
运行是说:实时错误91,对象变量或with 块对象未设置的错误。
怎么回事呀?
调试后错误定位在这个位置:
For i = 1 To temprecordset.RecordCount
建议调试时把On Error GoTo —去掉,才看得到错误原因
Dim temprecordset As adodb.Recordset
set temprecordset=new adodb.Recordset
txtsql = "select name from graduateuser.director_info"
temprecordset.open conn,txtsql
For i = 1 To temprecordset.RecordCount
combodirector.AddItem temprecordset.Fields(0)
temprecordset.MoveNext
Next i
temprecordset.Close
当然conn要为全局变量