这样就行了!
sqls  =  "select  *  from  Employees  where  NumberID  =  '"  &  Replace(txt.text,"'","''")  &  "'" 
RS.Open  sqls,  cndbase

解决方案 »

  1.   

    自己写段 函数 除去  ’号呀。
       Function DeleteSyb(strTxt As String) As Integer
            ...............
       End Function sqls  =  "select  *  from  Employees  where  NumberID  =  '"  &  DeleteSyb(txt.text)  &  "'" 
    RS.Open  sqls,  cndbase 
      

  2.   

    因为单引号为SQL中标识字符串的符号,所以在查询时不能以本身形式出现在SQL语句中。事先应用replace把单引号 ' 置换成 '' 两个单引号。
      

  3.   

    Replace用法如下:Replace函数
    语法:
    Replace(expression,find,replacewith",start",count",compare""")
    该函数返回一字符串,表示字符中的一个特定子字符串已经被另一个字符串取代的次数。
    Replace函数的语法包含以下的组成部分:
    Expression为必选项。字符串表达式,包含了要被取代的子字符串。
    find为必选项。要被搜寻的子字符串。
    replacewith为必选项。用来取代的子字符串。
    start为必选项。在expression中,子字符串搜寻操作的开始位置,如果省略,则预设为1。
    Count为选择项。子字符串取代的执行次数。如果省略,默认什为-1,表示将执行所有可能的取代操作。
    compare为选择项。指定子字符串比较的种类。
    compare参数的设定值如下表所示:常数              值  说明
    VbBinaryCompare   0  执行二进制比较。
    VbTextCompare     1  执行字符比较。
    VbDatabaseCompare 2  执行数据内容比较。Replace函数有下表所示的返回值:
          条  件                返 回 值
    expression的长度为零      返回空字符串("")。
    expression是Null         错误。
    find的长度为零            一份expression的复制。
    replacewith的长度为零     find的移除项目。
    start>Len(expression)    空字符串。
    count为零 一份expression  的复制。注解:
    Replace函数的返回值是一个字符串,而这个字符串已经进行过取代操作。而取代操作是从start所决定的位置开始,在expression字符串的结尾停止执行。这个字符串不是原始字符串从头到尾的复制。
      

  4.   

    一般有三种解决方法
    1.用replace()替换掉那个单引号
    2.如果你的numberid是数值型的,你可以在输入时用isnumeric()来控制输入
    3.发现有引号不允许输入用instr()即可
      

  5.   

    NumberID  是数字型的吧,写一个函数让用户只能输入数字就行了。