请教大哥,大姐,大弟,大妹,帮我看看这句SQL错在哪里?"Select * from tongdata where name like '%' and work like '%s%' and phone like '%5%'"

时间:2022-08-24 11:26:32
原意是这样的,有三个编辑框,让我填入查询条件
如果不填的话,编辑框值为 '%'
如果有值的话,编辑框为'%5%'
我这里想要找出所有 phone 带'5'的记录并且work带‘s’的记录, 这样就完成我的组合查询


我是用VB+ADO+ACCSEE
可是记录出不来,而且按照的我意思,编辑框都不填,应该把所有记录都出来
但是错在哪里呢?

30 个解决方案

#1


如果偶没记错的话'%'好象对并不适用于Acess,Acess应该使用'*'和'?'.

#2


我用过 * 了,没用

#3


在access中通配符是 *,不是%,$是sqlserver中的通配符。
如果还有问题,你可以在access中的sql视图中先执行一下,看是不是sql语句的问题。

#4


都like “%”了,还会有什么出来啊!
在运行sql语句之前加一判断吧!

#5


like '%'
%是关键字,你那样可能有问题。

#6


你是社么数据库,用撒饿统配副~~~~~~~~~~~~~

#7


% 不是说是代表任意条件吗?
这样说吧,
在VB ADO ACCSEE 中查找个任意条件的怎么写,不过这个条件会变化的

#8


VB语法肯定没出错
因为别的简单sql查询可以实现
而且都是字符串

#9


@_@

#10


Select * from tongdata where work like '*s*' and phone like '*5*'
Access里面的统配符是*,SqlServer里面才是%

#11


是否可改成:
"Select * from tongdata where work like '*" & "s" & "and phone like '*" & "5" & '*"
先试试吧,我是从一个例子中找到的

#12


我记的好象如OLD_VB_FAN(蓝星)所写,但记不太清了
是要一些'&"的组合,多试试

#13


没用 改成*了就一个记录也不实现了

#14


你的SQL好象没错但有几个地方要留意:
1:如果RecordCount返回-1,可能OPEN有问题(游标,键集)
2:如果RecordCount返回0,数据库中是否有这样的数据

#15


name like '%' and 可以省略

#16


我终于发现自己提的问题是怎么回事了,原来 "Select * From tongdata where name Like '%'"不能将数据表中 name没有记录的记录查询出来, 于是又有了个新问题,我如何将数据表中任意条件的记录sql出来,包括空字符?

例如 Select * from tongdata where name Like ?????
因为name的条件我事先不知道, 

#17


不用管NAME字段,WHERE中不用写

#18


如:Select * from tongdata where and work like '%s%' and phone like '%5%'     找出所有 phone 带'5'的记录并且work带‘s’的记录
Select * from tongdata    找出所有的记录

#19


用汉字做字段名---至命错误。

#20


用下面语句就可以把所有记录全部显示出来了
Select * from tongdata

#21


给你看看我的语句。你去试试。
sql = "SELECT * FROM info WHERE " & Fld & "=""" & TFld & """"

#22


MM的答复果然多。我的问题怎么美人答

#23


*和?是应用在DAO中的,在ADO中必须使用%和_才可以;
name like '%'不要写了

#24


strTxt = "'%" & txt1.Text & "%'"
strQ2 = "ename" & " " & strQ3 & " " & strTxt
strQ2 = "select * from evect " & " where  " & strQ2
  Set adoPrimaryRS2 = New Recordset
  adoPrimaryRS2.Open strQ2, db, adOpenStatic, adLockOptimistic

我的环境和你的一样,用以上的句子没有毛病啊。从源程序中摘录出来的

#25


你的话是什么意思我怎么理解不了那???不过,如果你是想找东西的,可以做个判断的。当name的字段没有输入条件的时候,就不用它查找就可以了。如果,你一定要找的话,就使用全体查找好了。select * from  表明

#26


一定对的方法:
A.Select * from tongdata where work like '% s %' and phone like '% 5 %'
注释:phone字段类型为字符型
B.Select * from tongdata where work like '% s %' and phone like % 5 %
注释:phone字段类型为数值型

查所有的姓名,就和姓名字段没关系不要写上去,(name like '%' 一定错)
很久没写vb了,记得以前做模糊查询在vb中格式和容易搞错,请注意

#27


Dim FieldName(2) As String
Dim strSQL(2) As String
Dim str_SQL As String
Dim i As Integer
str_SQL = ""
FieldName(0) = "au_id"
FieldName(1) = "author"
FieldName(2) = "[year born]"
For i = 0 To 2
    If Text1(i).Text = "" Then
        strSQL(i) = ""
    Else
        strSQL(i) = FieldName(i) & " like '%" & Text1(i).Text & "%'"
    End If
Next i
For i = 0 To 2
    If str_SQL = "" Then
        str_SQL = str_SQL & strSQL(i)
    ElseIf strSQL(i) = "" Then
    Else
        str_SQL = str_SQL & " and " & strSQL(i)
    End If
Next i
If str_SQL = "" Then
    str_SQL = "select * from authors"
Else
    str_SQL = "select * from authors where " & str_SQL
End If
Set rstA = Nothing
rstA.Open str_SQL, conA, adOpenKeyset, adLockOptimistic

#28


??

#29


改成下面的形式试试吧
"Select * from tongdata where name like '" & "% ' and work like '" & "%s% ' and phone like '" & "%5%' "
在字符串里,单引号必须被双引号引起来。

#1


如果偶没记错的话'%'好象对并不适用于Acess,Acess应该使用'*'和'?'.

#2


我用过 * 了,没用

#3


在access中通配符是 *,不是%,$是sqlserver中的通配符。
如果还有问题,你可以在access中的sql视图中先执行一下,看是不是sql语句的问题。

#4


都like “%”了,还会有什么出来啊!
在运行sql语句之前加一判断吧!

#5


like '%'
%是关键字,你那样可能有问题。

#6


你是社么数据库,用撒饿统配副~~~~~~~~~~~~~

#7


% 不是说是代表任意条件吗?
这样说吧,
在VB ADO ACCSEE 中查找个任意条件的怎么写,不过这个条件会变化的

#8


VB语法肯定没出错
因为别的简单sql查询可以实现
而且都是字符串

#9


@_@

#10


Select * from tongdata where work like '*s*' and phone like '*5*'
Access里面的统配符是*,SqlServer里面才是%

#11


是否可改成:
"Select * from tongdata where work like '*" & "s" & "and phone like '*" & "5" & '*"
先试试吧,我是从一个例子中找到的

#12


我记的好象如OLD_VB_FAN(蓝星)所写,但记不太清了
是要一些'&"的组合,多试试

#13


没用 改成*了就一个记录也不实现了

#14


你的SQL好象没错但有几个地方要留意:
1:如果RecordCount返回-1,可能OPEN有问题(游标,键集)
2:如果RecordCount返回0,数据库中是否有这样的数据

#15


name like '%' and 可以省略

#16


我终于发现自己提的问题是怎么回事了,原来 "Select * From tongdata where name Like '%'"不能将数据表中 name没有记录的记录查询出来, 于是又有了个新问题,我如何将数据表中任意条件的记录sql出来,包括空字符?

例如 Select * from tongdata where name Like ?????
因为name的条件我事先不知道, 

#17


不用管NAME字段,WHERE中不用写

#18


如:Select * from tongdata where and work like '%s%' and phone like '%5%'     找出所有 phone 带'5'的记录并且work带‘s’的记录
Select * from tongdata    找出所有的记录

#19


用汉字做字段名---至命错误。

#20


用下面语句就可以把所有记录全部显示出来了
Select * from tongdata

#21


给你看看我的语句。你去试试。
sql = "SELECT * FROM info WHERE " & Fld & "=""" & TFld & """"

#22


MM的答复果然多。我的问题怎么美人答

#23


*和?是应用在DAO中的,在ADO中必须使用%和_才可以;
name like '%'不要写了

#24


strTxt = "'%" & txt1.Text & "%'"
strQ2 = "ename" & " " & strQ3 & " " & strTxt
strQ2 = "select * from evect " & " where  " & strQ2
  Set adoPrimaryRS2 = New Recordset
  adoPrimaryRS2.Open strQ2, db, adOpenStatic, adLockOptimistic

我的环境和你的一样,用以上的句子没有毛病啊。从源程序中摘录出来的

#25


你的话是什么意思我怎么理解不了那???不过,如果你是想找东西的,可以做个判断的。当name的字段没有输入条件的时候,就不用它查找就可以了。如果,你一定要找的话,就使用全体查找好了。select * from  表明

#26


一定对的方法:
A.Select * from tongdata where work like '% s %' and phone like '% 5 %'
注释:phone字段类型为字符型
B.Select * from tongdata where work like '% s %' and phone like % 5 %
注释:phone字段类型为数值型

查所有的姓名,就和姓名字段没关系不要写上去,(name like '%' 一定错)
很久没写vb了,记得以前做模糊查询在vb中格式和容易搞错,请注意

#27


Dim FieldName(2) As String
Dim strSQL(2) As String
Dim str_SQL As String
Dim i As Integer
str_SQL = ""
FieldName(0) = "au_id"
FieldName(1) = "author"
FieldName(2) = "[year born]"
For i = 0 To 2
    If Text1(i).Text = "" Then
        strSQL(i) = ""
    Else
        strSQL(i) = FieldName(i) & " like '%" & Text1(i).Text & "%'"
    End If
Next i
For i = 0 To 2
    If str_SQL = "" Then
        str_SQL = str_SQL & strSQL(i)
    ElseIf strSQL(i) = "" Then
    Else
        str_SQL = str_SQL & " and " & strSQL(i)
    End If
Next i
If str_SQL = "" Then
    str_SQL = "select * from authors"
Else
    str_SQL = "select * from authors where " & str_SQL
End If
Set rstA = Nothing
rstA.Open str_SQL, conA, adOpenKeyset, adLockOptimistic

#28


??

#29


改成下面的形式试试吧
"Select * from tongdata where name like '" & "% ' and work like '" & "%s% ' and phone like '" & "%5%' "
在字符串里,单引号必须被双引号引起来。