Foxtable(狐表)用户栏目专家坐堂 → [求助]select语句的条件表达式中1=1的用法是错的吗?


  共有2575人关注过本帖树形打印复制链接

主题:[求助]select语句的条件表达式中1=1的用法是错的吗?

帅哥哟,离线,有人找我吗?
huangfanzi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]select语句的条件表达式中1=1的用法是错的吗?  发帖心情 Post By:2015/7/7 12:38:00 [显示全部帖子]

在select的where中,执行下图的条件后,提示语法错误,发现问题出在 1=1 上,这个用法不对吗?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150707123629.jpg
图片点击可在新窗口打开查看



[此贴子已经被作者于2015/7/7 12:37:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/7 14:28:00 [显示全部帖子]

但是加上1=1 就执行出错,去掉后就能正常执行了。

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/7 15:55:00 [显示全部帖子]

Dim flt As String = "1=1"
If e.Form.Controls("RadioButton_合同签订_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%合同已签订%'"
Else If e.Form.Controls("RadioButton_合同签订_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%合同已签订%' or  [执行过程] is Null)" 
End If

If e.Form.Controls("RadioButton_货款申请_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%货款已申请%'"
Else If e.Form.Controls("RadioButton_货款申请_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%货款已申请%' or  [执行过程] is Null)"
End If

If e.Form.Controls("RadioButton_货款支付_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%货款已支付%'"
Else If e.Form.Controls("RadioButton_货款支付_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%货款已支付%' or  [执行过程] is Null)"
End If

If e.Form.Controls("RadioButton_货物入库_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%货物已入库%'"
Else If e.Form.Controls("RadioButton_货物入库_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%货物已入库%' or  [执行过程] is Null)"
End If

If e.Form.Controls("RadioButton_质保收到_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%质保已收到%'"
Else If e.Form.Controls("RadioButton_质保收到_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%质保已收到%' or  [执行过程] is Null)"
End If

If e.Form.Controls("RadioButton_fa piao收到_YES").Checked = True Then
flt = flt & " And [执行过程] Like '%fa piao已收到%'"
Else If e.Form.Controls("RadioButton_fa piao收到_NO").Checked = True Then
flt = flt & " And ([执行过程] Not Like '%fa piao已收到%' or  [执行过程] is Null)"
End If

Tables("采购合同执行过程查询_Table_采购合同").Fill("Sel ect  合同号,签订日期,供应商,原产牌号,厚度,宽度,重量,单价,金额,付款方式,交货日期,提货方式,执行纪要 From {原料采购合同} Where"  & flt,"ShcsErpSql",True)

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/8 9:03:00 [显示全部帖子]

 以下是上面代码的执行结果图:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150708090215.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150708090153.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/8 9:37:00 [显示全部帖子]

直的啊,晕死,但为什么我不用1=1,用了另外的一串代码就没事,代码如下:
Dim flt As String = "[执行状态] = '执行中'"  'where后少了空格后此代码能让整段程序正常运行,目前使用中的也是这段代码,用1=1只是尝试一下用法
'Dim flt As String = "1=1" 
[此贴子已经被作者于2015/7/8 9:37:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/7/8 9:43:00 [显示全部帖子]

1=1现在是没问题了,但要求where后要有空格,要加空格的做法我能想通,现在想不通的是在没空格的情况下,用了Dim flt As String = "[执行状态] = '执行中'"  不会出错,难道是软件本身的容错,因为[执行状态] 是字段,所以在程序执行上where自动与[执行状态]之间加了个空格,呵呵!

 回到顶部