当前位置:编程学习 > VB >>

菜鸟一枚,类型不匹配调不过去了,求帮帮!有的机器就行,有的就不行。。无语

看王国荣的VB数据库设计,范例有一段调不过去了,就在我本上不行,换自己的台式机就OK。。。。求解
Private Sub Command2_Click()
    List1.Clear
    ' 搜寻所有「成交量」字段大于10000的股票,使用FindLast及FindPrevious
    criteria = "成交量 > 10000"
    ret = FindLast(Adodc1.Recordset, criteria) '<-------------在这提示类型不匹配
    While ret
        List1.AddItem Adodc1.Recordset("股票名称") & " = " & _
                      Adodc1.Recordset("成交量")
        ret = FindPrevious(Adodc1.Recordset, criteria)
    Wend
End Sub

Private Sub Form_Load()
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\\stock01.mdb;Persist Security Info=False"
    Adodc1.CommandType = adCmdTable
    Adodc1.RecordSource = "股票行情表"
    Adodc1.Refresh
    Set DataGrid1.DataSource = Adodc1

End Sub

’Find.bas
' 从最后一笔记录开始向上搜寻
Function FindLast(rs As ADODB.Recordset, ByVal criteria As String)
    On Error Resume Next
    rs.MoveLast
    rs.Find criteria, , adSearchBackward
    FindLast = Not rs.BOF And Err.Number = 0
End Function
数据库 类型不匹配 --------------------编程问答-------------------- 你没有定义变量类型,系统会默认为变体类型
dim criteria as string
criteria = "成交量 > 10000" --------------------编程问答--------------------
引用 1 楼 SupermanKing 的回复:
你没有定义变量类型,系统会默认为变体类型
dim criteria as string
criteria = "成交量 > 10000"

你说的我试过了 不是那个毛病 要不不会在两台机器上有不同的表现 我怀疑是因为某个DLL插件的问题 因为我的台式机是安装版的 本是ghost版 
哪位大仙有其他建议啊! --------------------编程问答-------------------- 你做安装程序了吗?不然兼容性会很差的。 --------------------编程问答-------------------- Dim  ret  As Boolean

Function FindLast(rs As ADODB.Recordset, ByVal criteria As String) As Boolean
    On Error Resume Next
    rs.MoveLast
    rs.Find criteria, , adSearchBackward
    FindLast = Not rs.BOF And Err.Number = 0
End Function
--------------------编程问答-------------------- 帅哥。。BCCN 那个也是我问的好不好!别贴过来了 --------------------编程问答-------------------- 程序报错中断时候在立即窗口里输出一下这几个变量的类型,
?typename(ret);typename(Adodc1.Recordset) ; TypeName(criteria)
这样就知道哪个变量的类型出问题了
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,