Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3500|回复: 12

[已解决]感谢hwc2ycy 版主!一个EXCEL题外问题的解决

[复制链接]
发表于 2013-12-24 09:32 | 显示全部楼层 |阅读模式
本帖最后由 zzh49 于 2013-12-24 13:06 编辑

向各位老师求助一模糊查询语句。
数据库:SQL Serverl 2000    表名:ABC
数据表内各字段:序号   单位   所属网点  负责人  联系电话   年销售额

VB6.0窗体中,Combo1选择要查询的单位(即在字段“单位”一列中选择一单位),在Text1在输入要查询的关键字,只对Combo1所选择单位的所属网点、负责人、联系电话、年销售额进行模糊查询。
下面的查询语句有错误
Temp_String = "where (((ABC.所属网点) Like '%" & Text1.Text & "%'  )) OR (((ABC.负责人) Like '%" & Text.Text & "%'  )) OR (((ABC.联系电话) Like '%" & Text1.Text & "%'  )) OR (((ABC.年销售额) Like %" & Text1.Text & "%  ));"
Rs.Open "select * from ABC where 单位 like '" & Combo1.Text & "'" & Temp_String, cn, 3, 3
求各位帮忙,写一个按选择后的单位模糊查询各字段的语句。
谢谢!

最佳答案
2013-12-24 12:51
  1.     Temp_String = "select * from ABC where 单位='" & Combo1.Text & "' and ((所属网点 Like '%" & Text1.Text & "%') OR (负责人 Like '%" & Text.Text & "%') OR (联系电话 Like '%" & Text1.Text & "%') OR (年销售额 Like '%" & Text1.Text & "%'));"
  2.     Debug.Print Temp_String
  3.     Rs.Open Temp_String, cn, 3, 3
复制代码
貌似括号少了。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-24 09:52 | 显示全部楼层
ABC.所属网点这个直接放在引号中就错了。
这里是返回的值,必须放在引号外面
比如说
A=123
temp_string="A"
temp_string=A
这是两玛事。
回复

使用道具 举报

 楼主| 发表于 2013-12-24 10:01 | 显示全部楼层
hwc2ycy 发表于 2013-12-24 09:52
ABC.所属网点这个直接放在引号中就错了。
这里是返回的值,必须放在引号外面
比如说

谢谢版主的关注!
请帮助修改成一个完整的模糊查询语句好吗
谢谢!
回复

使用道具 举报

发表于 2013-12-24 10:17 | 显示全部楼层
zzh49 发表于 2013-12-24 10:01
谢谢版主的关注!
请帮助修改成一个完整的模糊查询语句好吗
谢谢!

Temp_String = "where (ABC.所属网点 Like '%" & Text1.Text & "%') OR (ABC.负责人 Like '%" & Text.Text & "%') OR (ABC.联系电话 Like '%" & Text1.Text & "%') OR (ABC.年销售额) Like '%" & Text1.Text & "%');"
debug.print Temp_string
Rs.Open "select * from ABC " &  Temp_String, cn, 3, 3
回复

使用道具 举报

 楼主| 发表于 2013-12-24 10:46 | 显示全部楼层
本帖最后由 zzh49 于 2013-12-24 10:52 编辑
hwc2ycy 发表于 2013-12-24 10:17
Temp_String = "where (ABC.所属网点 Like '%" & Text1.Text & "%') OR (ABC.负责人 Like '%" & Text.Tex ...

谢谢版主的帮助!
Combo1这个条件没有包括进去,也就是说,只对Combo1选定的单位(即在选定的单位范围内)进行各字段中对应该单位的数据中查询。因为这个做好后要给各单位,登陆进去的单位只能模糊查询自己单位的数据。
麻烦您了。
回复

使用道具 举报

发表于 2013-12-24 10:52 | 显示全部楼层
zzh49 发表于 2013-12-24 10:46
谢谢版主的帮助!
Combo1这个条件没有包括进去,也就是说,只对Combo1选定的单位(即在选定的单位范围内) ...
  1. Temp_String = " (所属网点 Like '%" & Text1.Text & "%') OR (负责人 Like '%" & Text.Text & "%') OR (联系电话 Like '%" & Text1.Text & "%') OR (年销售额) Like '%" & Text1.Text & "%');"
  2. debug.print Temp_string
  3. Rs.Open "select * from ABC where 单位='" & Combo1.Text & "' and " &  Temp_String, cn, 3, 3
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-24 11:27 | 显示全部楼层
本帖最后由 zzh49 于 2013-12-24 12:07 编辑
hwc2ycy 发表于 2013-12-24 10:52

感谢版主不厌其烦的帮助!
还有点问题:
加上Combo1条件后,提示:实时错误'-2147217900 (80040e14)'
在关键字'where'附近有语法错误。
如果不加Combo1条件能模糊查询全表各字段,正常。
不知什么原因,请版主再看看。
谢谢!
回复

使用道具 举报

发表于 2013-12-24 11:36 | 显示全部楼层
你把出错时立即窗口截个图就知道了。
是不是你控件名字弄错了?

回复

使用道具 举报

 楼主| 发表于 2013-12-24 12:19 | 显示全部楼层
hwc2ycy 发表于 2013-12-24 11:36
你把出错时立即窗口截个图就知道了。
是不是你控件名字弄错了?

版主,截图是这样的:
111.PNG
回复

使用道具 举报

发表于 2013-12-24 12:25 | 显示全部楼层
  1.     Temp_String = "select * from ABC where 单位='" & Combo1.Text & "' and (所属网点 Like '%" & Text1.Text & "%') OR (负责人 Like '%" & Text.Text & "%') OR (联系电话 Like '%" & Text1.Text & "%') OR (年销售额 Like '%" & Text1.Text & "%');"
  2.     Debug.Print Temp_String
  3.     Rs.Open Temp_String, cn, 3, 3
复制代码
换成这个,再重新截图。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 12:23 , Processed in 0.331981 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表