数据源不是来自数据库,而是通过以下代码直接生成(这些代码是测试的),但是执行rs.Find这一句时,提示如图的错误
Dim rs As Recordset
Private Sub Command1_Click()
rs.Find "第2列='20'"
End SubPrivate Sub Form_Load()
Set rs = New Recordset
Dim i As Integer, j As Integer
For i = 0 To 2
rs.Fields.Append "第" & i & "列", adVariant
Next i
rs.Open
For i = 0 To 3
rs.AddNew
For j = 0 To 2
rs.Fields(j) = (j + i + 1) ^ 2 + (j + i + 1)
Next j
Next i
Set MSHFlexGrid1.DataSource = rs
End Sub
因为我的数据非常多,想判断是否存在,如果存在就不做进一步的计算,因此想到用Recordset查找,这样速度也许快些,现在只能保留一部分,然后通过循环查找,如果原来有则跳过还有没有其它更好的方法?
Dim rs As Recordset
Private Sub Command1_Click()
rs.Find "第2列='20'"
End SubPrivate Sub Form_Load()
Set rs = New Recordset
Dim i As Integer, j As Integer
For i = 0 To 2
rs.Fields.Append "第" & i & "列", adVariant
Next i
rs.Open
For i = 0 To 3
rs.AddNew
For j = 0 To 2
rs.Fields(j) = (j + i + 1) ^ 2 + (j + i + 1)
Next j
Next i
Set MSHFlexGrid1.DataSource = rs
End Sub
因为我的数据非常多,想判断是否存在,如果存在就不做进一步的计算,因此想到用Recordset查找,这样速度也许快些,现在只能保留一部分,然后通过循环查找,如果原来有则跳过还有没有其它更好的方法?
rs.Fields.Append "第" & i & "列", adbStr 试试
果然是它,谢谢
不知道还有没有比用Recordset更好的方法
该链接是我发的一个帖子,但是没有人回帖,准备结贴散分,请有心人顶帖吧。
该固定长度的二进制串,数量非常多,如果穷举的话,这辈子估计是没有希望了,因此,只能记录已经计算过的部分,得到新的字符串的时候与原来的比较,如果不同进行下一步计算,相同则将原来的计算结果复制过来。
现在基本上已经采用recordset的方式实现了。但是不知道recordset的最多可以保存多少记录?记录数达到多少时会影响查找速度?
另外也想把这些记录存入到Access数据库中,这样可以多次调用对比,但是担心因为记录数太大的时候是不是影响查找速度?