我在使用ADO+access时使用了一条SQL语句,如下:
strcom="select * from 试验报告 where 样品名称=" & text1.text
当在text1中填入的内容是数字时,可以正常运行,无问题
当在text1中填入的内容是字符时,出错,提示如下:
1、至少有一个参数没有被指定值。
2、对象'Refresh'的方法'IAdodc'失败。
有没有哪位仁兄遇到过这种情况呀,这是怎么回事呀?

解决方案 »

  1.   

    如果是字符型, 可以用
    strcom="select * from 试验报告 where 样品名称=" & chr(34) & trim(text1.text) & chr(34)
      

  2.   

    chr(34)在这里起什么作用?
    我现在没VB,无法试验。请赐教.
      

  3.   

    就是"号因为比较是要用字符串来和字段比较, 如果没有"号, ACCESS认为是和字段比较select * from 试验报告 where 样品名称=aa1access 认为是 字段 样品名称 和字段 aa1 相等select * from 试验报告 where 样品名称=“aa1”access 认为是 字段 样品名称为aa1字符串 
      

  4.   

    我直接读取过strcom这个变量
    值为"select * from 试验报告 where 试验名称=123"时运行正常,
    值为"select * from 试验报告 where 试验名称=abc"时就出错,
      

  5.   

    如果没有"(chr(34)) 
    select * from 试验报告 where 样品名称=aa1这样ACCESS就会提示没有aa1字段如果在ACCESS运行会提示输入aa1的值
    如果在VB里直接执行
    会提示
    至少有一个参数没有被指定值 这个参数就是aa1
      

  6.   

    "select * from 试验报告 where 试验名称=123"能得到正确的结果吗?我试过在ACCESS里是提示错误的, 也许是VB在传递数字给ACCESS的时候做了处理但是,可以肯定对于字符类型, 不用" 肯定是不合理的