环境Windows2000 VB6.0 Access2000,请按我的顺序来
1、
Access2000建一个数据库Datatask1,在里面建一张表,表名为"表1"
表中有三个字段 ID (自动编号) userid(数字) name (文本)
输入一条数据   1,1,重大  (第一个不用输入)
建一个查询,名字不限,内容 SELECT * FROM 表1 WHERE [userid]=1 and ([name] like '*大*');
2、
打开VB,建一个工程,在窗体中加一个文本框和一个按钮,加入ADO2.5引用,输入代码
Public TaskCon As New ADODB.Connection
Public TaskRct As ADODB.Recordset
Private Sub Command1_Click()
strSql = Text1.Text
Set TaskRct = New ADODB.Recordset
TaskRct.Open strSql, TaskConIf TaskRct.BOF And TaskRct.BOF Then
MsgBox "没有记录"
End If
End SubPrivate Sub Form_Load()
TaskCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataTask1.mdb;Persist Security Info=False"
TaskCon.Open
End Sub
3、运行数据库查询,你可以查到一条记录,
4、运行VB,在文本框里粘入查询内容,点按钮,就是没记录

解决方案 »

  1.   

    vb里面的sql语句跟acess里的不一样
    你试下把分号取消试试
      

  2.   

    添加:TaskCon.CursorLocation = adUseClient
    改查询:SELECT * FROM 表1 WHERE [userid]=1 and ([name] like '%大%')
      

  3.   

    改查询:SELECT * FROM 表1 WHERE [userid]=1 and ([name] like '%大%')
    这样VB可以了,可是数据库又不行了
      

  4.   

    access2000的sql语句的通配符与VB+ADO的sql的通配符是不同的,在access2000中,用“*”来表示,在VB中,用"%"表示。access2000和VB都没有问题,只是有一些地方不太一致而已。除此之外,access2000支持sn()函数来处理空值null,而VB则不支持,而须用isnull来判别。这有点像美国的英语和英国的英语有些地方互相不一致道理是一样的,你不能说美式英语错了,也不能说英式英语错了。
      

  5.   

    If TaskRct.BOF And TaskRct.BOF Then
    MsgBox "没有记录"
    End If
    End Sub
    看看这句有问题没?