用ADO的RECORDSET中的OPEN方法打开时没有错误,但用COMMAND对象查询时死机.哪位大大能看看是什么原因?
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Option ExplicitPrivate Sub Command1_Click()
Dim connstr$, sql$
connstr = "provider=microsoft.jet.oledb.4.0;data source=d:\cangku\cangku.mdb"
conn.Open connstrSet cmd.ActiveConnection = conn
sql = "select * from kucun where 物资名称='111'"
cmd.CommandText = sql
cmd.CommandType = adCmdText
Set rs = cmd.ExecuteCall chushi
Call listEnd SubPrivate Sub chushi()
With MSHFlexGrid1
.Cols = 7
.TextMatrix(0, 0) = "序号"
.TextMatrix(0, 1) = "物资名称"
.TextMatrix(0, 2) = "型号规格"
.TextMatrix(0, 3) = "单位"
.TextMatrix(0, 4) = "数量"
.TextMatrix(0, 5) = "入库时间"
.TextMatrix(0, 6) = "供货单位"
End With
End Sub
Private Sub list()
MSHFlexGrid1.Cols = 7
While rs.EOF = False
rs.MoveFirst
Dim r As Long
Dim c As Integer
For r = 1 To rs.RecordCount
For c = 0 To rs.Fields.Count - 1
MSHFlexGrid1.TextMatrix(r, c) = rs.Fields(c)
Next c
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1
rs.MoveNext
Next r
Wend
End Sub
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Option ExplicitPrivate Sub Command1_Click()
Dim connstr$, sql$
connstr = "provider=microsoft.jet.oledb.4.0;data source=d:\cangku\cangku.mdb"
conn.Open connstrSet cmd.ActiveConnection = conn
sql = "select * from kucun where 物资名称='111'"
cmd.CommandText = sql
cmd.CommandType = adCmdText
Set rs = cmd.ExecuteCall chushi
Call listEnd SubPrivate Sub chushi()
With MSHFlexGrid1
.Cols = 7
.TextMatrix(0, 0) = "序号"
.TextMatrix(0, 1) = "物资名称"
.TextMatrix(0, 2) = "型号规格"
.TextMatrix(0, 3) = "单位"
.TextMatrix(0, 4) = "数量"
.TextMatrix(0, 5) = "入库时间"
.TextMatrix(0, 6) = "供货单位"
End With
End Sub
Private Sub list()
MSHFlexGrid1.Cols = 7
While rs.EOF = False
rs.MoveFirst
Dim r As Long
Dim c As Integer
For r = 1 To rs.RecordCount
For c = 0 To rs.Fields.Count - 1
MSHFlexGrid1.TextMatrix(r, c) = rs.Fields(c)
Next c
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1
rs.MoveNext
Next r
Wend
End Sub
一般数据多的话,会处理很久的
几百条数据都觉得很慢了....建议改语句,用其他办法实现,尽量不要用MOVE.NEXT之类的
MSHFlexGrid1.Cols = 7
While rs.EOF = False
rs.MoveFirst
Dim r As Long
Dim c As Integer
For r = 1 To rs.RecordCount
For c = 0 To rs.Fields.Count - 1
MSHFlexGrid1.TextMatrix(r, c) = rs.Fields(c)
Next c
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1
rs.MoveNext
Next r
Wend
End Sub你读一读这一段代码
好不容易rs.MoveNext读到最后去了,你又rs.MoveFirst了
if not rs.eof then
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html