您的位置:首页 > 数据库

对于access,在数据库当中建立模糊查询时,这时用到的通配符号是“*”,而如果在VB中使用查询语句进行模糊查询时,这时就要用“%”

2013-03-12 11:13 671 查看
有个很简单的问题,邪了门了,我在代码里面,把sql语句,拷出来:

SELECT DetailList.[Id_Detail], DetailList.[NoteTime], DetailList.[ListNumber], DetailList.[OutMoney], DetailList.[BackupMoney], DetailList.[InMoney],Persons.Name, DetailList.[PersonId] , DetailList.[Remark] FROM DetailList left join Persons on Persons.Id_P=DetailList.PersonId
where 1=1 and NoteTime > #2013/3/12 00:00:00# and NoteTime < #2013/3/12 23:59:59# and Remark like '*测*';

放到Access的查询分析器里面,没问题啊,能出来结果,但是程序里面,没有结果。百思不得其解。于是百度了一下“access 模糊查询”。微软这也太2了。不过access 本来就比较2.这哥们儿,破问题还调试了一个通宵,伤不起啊。我也自己琢磨了很久。

于是我就把代码给改了,就好了

// sql += " and Remark like '*" + Remark + "*'";

sql += " and Remark like '%" + Remark + "%'";

看到结果了:

_bstr_t sql="select * from ZDYBAB where 医疗机构等级 like '三甲'";
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(sql, m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
这样查询是正常的,但是把三甲改为*(星号)以后,运行程序无法查到数据。
接下来又直接打开access,顶端title显示的是access2000格式。然后在access中直接执行select * from ZDYBAB where 医疗机构等级 like '*'。可以查到正常的数据。程序的问题到底出在哪里呢?调试了一整个通宵了。

我来帮他解答

满意回答

2011-02-24 07:51

这里涉及到一个问题,对于access,在数据库当中建立模糊查询时,这时用到的通配符号是“*”,而如果在VB中使用查询语句进行模糊查询时,这时就要用“%”
所以都会才会出现你上面的情况,你试着将*换成%看怎么样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐