Private Sub Form_Load() Dim txtSQL As String Dim MsgText As String Dim mrc As ADODB.Recordset
txtSQL = "select distinct typename from roomtype" Set mrc = ExecuteSQL(txtSQL, MsgText) If Not mrc.EOF Then Do While Not mrc.EOF Combo1(0).AddItem mrc.Fields(0) mrc.MoveNext Loop End If mrc.Close
txtSQL = "select distinct price from roomtype" Set mrc = ExecuteSQL(txtSQL, MsgText) If Not mrc.EOF Then Do While Not mrc.EOF Combo1(1).AddItem mrc.Fields(0) Combo1(2).AddItem mrc.Fields(0) mrc.MoveNext Loop End If mrc.Close
End Sub
Dim mrc As ADODB.Recordset是不是这句要改成Dim mrc As new ADODB.Recordset 如果改过来后,提示,对象关闭时不允许操作... 为什么呢?
dim cn As New ADODB.Connection dimrs As New ADODB.Recordset If cn.State = adStateOpen Then cn.Close cn.Provider = "Microsoft.Jet.OLEDB.4.0" cn.ConnectionString = App.Path & "\data\ELECTRIC.mdb" cn.Open With rs Set .ActiveConnection = cn .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseClient .Open "select * from a" If Not .EOF Then .MoveFirst While Not .EOF debug.print .fields("id").value .MoveNext Wend End If End With rs.close cn.close
Private Sub Form_Load() Dim txtSQL As String Dim MsgText As String Dim mrc As ADODB.Recordset
txtSQL = "select distinct typename from roomtype" Set mrc = CreateObject("ADODB.Recordset") mrc.Open txtSQL, conn, 3 Do While Not mrc.EOF Combo1(0).AddItem mrc.Fields(0) mrc.MoveNext Loop mrc.Close
txtSQL = "select distinct price from roomtype" Set mrc = CreateObject("ADODB.Recordset") mrc.Open txtSQL, conn, 3 Do While Not mrc.EOF Combo1(1).AddItem mrc.Fields(0) Combo2(2).AddItem mrc.Fields(0) mrc.MoveNext Loop mrc.Close End Sub
Dim mrc As ADODB.Recordset是不是这句要改成Dim mrc As new ADODB.Recordset//new代表的实例子化,没实例化怎么来的对象如果改过来后,提示,对象关闭时不允许操作... //从这句代码 Set mrc = ExecuteSQL(txtSQL, MsgText) 看不出问题,因为你ExecuteSQL是什么?我不知道上面的代码看不出任何的数据库open 一般情况直接用recordset去open 在open前对recordset的状态进行判断好了 比如 if mrc.state<>adstateclosed then mrc.closed
? dim cn As New ADODB.Connection dimrs As New ADODB.Recordset If cn.State = adStateOpen Then cn.Close cn.Provider = "Microsoft.Jet.OLEDB.4.0" cn.ConnectionString = App.Path & "\data\ELECTRIC.mdb" cn.Open With rs Set .ActiveConnection = cn .LockType = adLockPessimistic .CursorType = adOpenDynamic .CursorLocation = adUseClient .Open "select * from a" If Not .EOF Then .MoveFirst While Not .EOF debug.print .fields("id").value .MoveNext Wend End If End With rs.close cn.close
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
txtSQL = "select distinct typename from roomtype"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If Not mrc.EOF Then
Do While Not mrc.EOF
Combo1(0).AddItem mrc.Fields(0)
mrc.MoveNext
Loop
End If
mrc.Close
txtSQL = "select distinct price from roomtype"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If Not mrc.EOF Then
Do While Not mrc.EOF
Combo1(1).AddItem mrc.Fields(0)
Combo1(2).AddItem mrc.Fields(0)
mrc.MoveNext
Loop
End If
mrc.Close
End Sub
如果改过来后,提示,对象关闭时不允许操作...
为什么呢?
dimrs As New ADODB.Recordset
If cn.State = adStateOpen Then cn.Close
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = App.Path & "\data\ELECTRIC.mdb"
cn.Open
With rs
Set .ActiveConnection = cn
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.CursorLocation = adUseClient
.Open "select * from a"
If Not .EOF Then
.MoveFirst
While Not .EOF
debug.print .fields("id").value
.MoveNext
Wend
End If
End With
rs.close
cn.close
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
txtSQL = "select distinct typename from roomtype"
Set mrc = CreateObject("ADODB.Recordset")
mrc.Open txtSQL, conn, 3
Do While Not mrc.EOF
Combo1(0).AddItem mrc.Fields(0)
mrc.MoveNext
Loop
mrc.Close
txtSQL = "select distinct price from roomtype"
Set mrc = CreateObject("ADODB.Recordset")
mrc.Open txtSQL, conn, 3
Do While Not mrc.EOF
Combo1(1).AddItem mrc.Fields(0)
Combo2(2).AddItem mrc.Fields(0)
mrc.MoveNext
Loop
mrc.Close
End Sub
//从这句代码 Set mrc = ExecuteSQL(txtSQL, MsgText) 看不出问题,因为你ExecuteSQL是什么?我不知道上面的代码看不出任何的数据库open 一般情况直接用recordset去open
在open前对recordset的状态进行判断好了
比如
if mrc.state<>adstateclosed then mrc.closed
dim cn As New ADODB.Connection
dimrs As New ADODB.Recordset
If cn.State = adStateOpen Then cn.Close
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = App.Path & "\data\ELECTRIC.mdb"
cn.Open
With rs
Set .ActiveConnection = cn
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.CursorLocation = adUseClient
.Open "select * from a"
If Not .EOF Then
.MoveFirst
While Not .EOF
debug.print .fields("id").value
.MoveNext
Wend
End If
End With
rs.close
cn.close