一张“药品”表,”名称“字段里有青霉素,青霉素钾,青霉素钠三条记录,
窗体上有text1,adodc1,datagrid1,我想在text1里输入"青",使datagrid1能列出所有以“青”开头的记录,我别的问题没有,就是select语句老写不对,以下是我写的:
      x = Text1.Text
      strsql = "select * from 药品 where 名称 like ''*" & x & "*'*'"
''*" & x & "*'*'这句到底怎么写啊?

解决方案 »

  1.   

    參考此句:
     rs1.Open "select * from Phonebook where username='" & strUsername & "'and (Name like '%" & strPfind & "%') and (ItemNo='1' or isnull(ItemNo) or len(itemno)<1) order by ID", conn1, 3, 3
      

  2.   

    ACCESS:
    strsql = "select * from 药品 where 名称 like '*" & x & "*'"SQLSERVER:
    strsql = "select * from 药品 where 名称 like '%" & x & "%'"
      

  3.   

    还是不行,我甚至在adodc1的属性RecordSource里写select * from 药品 
    where 名称 like '青*'
    运行时datagrid1也是空的,我简直快要发疯了,是不是我的vb有问题
      

  4.   

    可是我写成select * from 药品 where 名称 like '青霉素钠',就能列出青霉素钠的记录
      

  5.   

    在adodc1的属性RecordSource里写:
    select * from 药品 where 名称 like '* 青 *'
      

  6.   

    慢慢来,你别急,有时侯也许是个很小的问题
    首先,你有没有SQL2000?如果有,把你的语句放到SQL中检查一下,注意空格什么的.
    还不行的话,把你的字段名啊什么的统统改为英文的试试
      

  7.   

    select * from 药品 where 名称 like '青%'如果是变量
    select * from 药品 where 名称 like '%"& 变量名 &"%'再refresh
    肯定就可以了
      

  8.   

    select * from 表名 where name like '青%'
    sqlserver用%作为不定数量字符的通配符,用_作为单个字符的通配符
      

  9.   

    我用Access试过写成:
    "Select 名称 From 药品  Where 名称 Like '%" & Trim(Text1.Text) & "%'"            是可以的,但写成:
    "Select 名称 From 药品  Where 名称 Like '*" & Trim(Text1.Text) & "*'" 
    就不行了,奇怪呀?Access不是用 “*”的吗?为什么用“%”反而能行呢?
      

  10.   

    终于解决了,应该是'%" & x & "%'。可是我也有和楼上一样的疑问Access不是用 “*”的吗?为什么用“%”反而能行呢?