我用的是VB6连接ACCESS2007数据库,现在有个查询:表示集装箱号码的字段“conNo”为11位的String类型(它的值为前4位是字母,后7位为数字,如TCNU8702729),现在想实现在一个Text控件里只需要输入集装箱号码的后7位,来实现查询。
请问这个查询条件应该怎样写?
谢谢!

解决方案 »

  1.   

    strsql="select * from mytable where mid(conNo, 6, 7) = '" & text1 & "' "
      

  2.   

    sql = "select * from tableName where conNo like'%" & Trim(Text1.Text) & "'"  
      

  3.   

    strsql="select * from mytable where conNo like '%" & mid(text1.text,5,7) & "%' "
      

  4.   

    写错了改:
    sql = "select * from tableName where conNo like'%" & Trim(Text1.Text) & "%'"
      

  5.   

    这样是不是不论输入了几位,都会查找出含有这几位的conNo来啊?
    我要指定必须是7位。(因为7位可以确定不重复的集装箱号码,如果小于7位会有很多重复的集装箱)
      

  6.   

    TCNU8702729
    如果字母部分也会有变化,分两的textbox,text1装入字母,text2装入数字,这样就可只改text2里的数字了。
    "... where conNo=" & trim(text1) & trim(text2)
      

  7.   

    那应该限定TextBox必须是7位数字的才执行查询.4楼和1楼代码能否执行我没测试过.
      

  8.   

    access不知道能不能用
    sql = "select * from tableName where conNo like'????" & Trim(Text1.Text) & "'"前面弄4个通配符就行了吧,这样后面长度不够就不会查出来了
      

  9.   

    access2007有right函数吧?有的话比用like和mid更合适吧?
      

  10.   

    sql = "select * from tableName where conNo=right(Text1.Text,7) "从右边起第7位
      

  11.   

    楼上不对,如果access2007支持right函数的话:
    slq="select * from tbName where right(conNo,7)='"& trim(text1) &"'"
      

  12.   


    这样测试通过了:strsql="select * from mytable where mid(conNo, 5, 7) = '" & text1 & "' "
    是从第5位开始取值。谢谢大家!