已有23人关注
对象‘Refresh‘的'Iadodc'方法失败 (VB技术方案宝典中的例子)
发表在VB答疑区 2011-02-01
是否精华
版块置顶:
程序中有一段代码,是实现汉字和拼音首字母查询的,用汉字查询没有问题.

    但是一输入字母马上就出现"[ADODC]未知错误",

    点"确定"后出现“对象‘Refresh‘的'Iadodc'方法失败”的错误提示。

该处代码如下:

Text1.Text = Trim(Text1.Text)
    Dim sqlstr As String
    Dim i As Integer
    
    If Len(Text1.Text) > 0 Then
    
    If Len(Text1.Text) = LenB(StrConv(Text1.Text, vbFromUnicode)) Then
        For i = 1 To Len(Text1.Text)
            ctohex Mid(Text1.Text, i, 1) 'ctohex是个自定义函数,用于将字母转换成汉字国标码上下限。

            sqlstr = sqlstr & "(cast(cast(substring(药品名称," & i & ",1) as varchar) as binary(2)) between " & d & " and " & u & " or substring(药品名称," & i & ",1)='" & Mid(Text1.Text, i, 1) & "'" & ") and "
            Next i
        If Right(sqlstr, 5) = " and " Then
            sqlstr = Left(sqlstr, Len(sqlstr) - 5)
        End If
        
        Adodc1.RecordSource = "select * from tb_warehouse_detailed where " & sqlstr
            Else
        
        If 2 * Len(Text1.Text) = LenB(StrConv(Text1.Text, vbFromUnicode)) Then
        Adodc1.RecordSource = "select * from tb_warehouse_detailed where 药品名称 like '%" & Text1.Text & "%'"
               Else
            MsgBox "请输入全英文或全汉字", vbCritical
            Exit Sub
        End If
    End If
    Debug.Print Adodc1.RecordSource
    Adodc1.Refresh    '出现错误处        
    Set DataGrid1.DataSource = Adodc1
       End If

上面的代码:是由VB技术方案宝典中的4.2.5例子改SQL 为 ACCESS 数据库的,其它没动,汉字查询正常,用拼音查询就出现上面的错误。

请专家改改.谢谢!!!!!

GUAIWU326@163.COM

注:我是直接用光盘中的例子改的。
分享到:
精彩评论 2
vbsoldier
学分:0 LV1
2011-02-11
沙发
ACCESS不支持以上SQL语句中的函数以及类型,换其他方法吧。
guaiwu326
学分:0 LV1
TA的每日心情
2022-03-03 01:48:13
2011-02-11
板凳
这个查询语句太复杂,能不能给改成ACCESS查询语句,谢谢,急用.
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照