模糊查询,遇到问题。

zhusuhao 2003-03-20 03:59:30
我是用VB+Access做的系统,在做模糊查询功能时,我发现只要我在查询条件中输入了"'"就会出错,如:content like '%'12345%',但是content like '%12345%'我在查询时是正确的。(这是Sql语句的一小段)我以前做过Sql Server的系统,知道在Sql Server中象content like '%'12345%'这样用是没错的。
...全文
31 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhusuhao 2003-03-20
  • 打赏
  • 举报
回复
问题解决了,其实这种替换的方法我早听说了,但是一直都没有理解是什么意思,谢了!
楼上的方法我看大可不必,你这样替换掉以后,所存内容就失真了,其实你只要在查询语句中来个replace(sql,"'","''")就行了,其查询出来的结果就是查询',这是数据库的自我机能,不用其他处理的。
谢了,结贴
painus 2003-03-20
  • 打赏
  • 举报
回复
假如数据库里有这样一个字段事先存在这样的字符 ' 那么你可以先编程把这个数据库整理一下
比如:
.fields("有'的字段")=replace(.fields("有'的字段"),chr(39),"")
即将符号 ' 去掉.
给分吧!
painus 2003-03-20
  • 打赏
  • 举报
回复
这是你在录入时遇到的问题,我给你一个函数,你可以限制他录入其他字符,只能录入数字!
Function sffunLimitNumber(ByVal IntVal As Integer) As Integer
If (IntVal <> vbKeyDelete) _
And (IntVal <> vbKeyBack) _
And (IntVal <> 13) _
And (IntVal < 48 Or IntVal > 57) Then
IntVal = 0
End If
sffunLimitNumber = IntVal
End Function
在text1的keypress事件中写
Private Sub text1_KeyPress(KeyAscii As Integer)
KeyAscii = sffunLimitNumber(KeyAscii)
End Sub
zhusuhao 2003-03-20
  • 打赏
  • 举报
回复
我知道你们的意思了,就是说在sql语句里虽然是''但是查询时是按照'来处理的,这是数据库的自己的机能。
zhusuhao 2003-03-20
  • 打赏
  • 举报
回复
我知道一个不行,但是两个显然就不是我要查的结果了啊
zhusuhao 2003-03-20
  • 打赏
  • 举报
回复


是我记错了,在sql server 里也是错的。大家遇到这个问题都是怎么解决的呢?

如果说有一个'是错的,但是中间确实存在,我就是要查,怎么办呢?
zyplwt 2003-03-20
  • 打赏
  • 举报
回复
一个单引号不行,再加一个试试,象上面所说的那样
lxcc 2003-03-20
  • 打赏
  • 举报
回复
sql语句不能带'

Sql Server中象content like '%'12345%'这样用是没错的。
置疑!应该不行!
饮水需思源 2003-03-20
  • 打赏
  • 举报
回复
在变量里碰到有'时再加一个',相当于'%''12345%',这样试试
holydiablo 2003-03-20
  • 打赏
  • 举报
回复
content like '%12345%'
还显然这是正确的

'%'12345%'好象......,反正我一看就觉得不舒服

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧