ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 223|回复: 6

Sql Where TRUE/FALSE不通过,只能用T/F

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-5 09:00 | 显示全部楼层 |阅读模式
image.png




        Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$] Where TorF = False"
        Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$] Where TorF = TRUE "
        Sql = "Select AfterMoveFile, MoveFile ,TorF From[Sheet5$X11:X30] Where TorF = 'True'"        
        Sql = "Select TorF From[Sheet5$] Where TorF = 'FALSE'"
结果记录为零,错误如下
image.png



        Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$X1:Z30] Where TorF = 'F'"

结果正常

D:\StreetSnap\2019年\2019年09月\2019年09月01日\IMG_20190901_071123.jpg              D:\StreetSnap\2019年\2019年09月\2019年09月01日\IMG_20190901_071123.jpg              F            
D:\StreetSnap\2019年\2019年09月\2019年09月01日\IMG_20190901_071138.jpg              D:\StreetSnap\2019年\2019年09月\2019年09月01日\IMG_20190901_071138.jpg              F            
D:\StreetSnap\2019年\2019年09月\2019年09月05日\IMG_20190905_222134.jpg              D:\StreetSnap\2019年\2019年09月\2019年09月05日\IMG_20190905_222134.jpg              F            



  1. Function SqlRetuRs(Str)
  2.    Dim Cn As ADODB.Connection
  3.        Set Cn = New ADODB.Connection
  4.    Dim Rs As ADODB.Recordset
  5.        Set Rs = New ADODB.Recordset
  6.         Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  7.         Rs.Open Str, Cn, adOpenKeyset, adLockOptimistic
  8.        Set SqlRetuRs = Rs
  9. End Function


  10. Sub SqlTrueFalse()
  11.     'Dim Cn As ADODB.Connection
  12.     Dim Rst As ADODB.Recordset
  13.     Dim Sql As String
  14.         Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$] Where TorF = False"
  15.         Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$] Where TorF = TRUE "
  16.         Sql = "Select AfterMoveFile, MoveFile ,TorF From[Sheet5$X11:X30] Where TorF = 'True'"
  17.         
  18.         Sql = "Select TorF From[Sheet5$] Where TorF = 'FALSE'"
  19.         Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$X11:Z50] "
  20.         Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$X1:Z30] Where TorF = 'F'"
  21.         Set Rst = SqlRetuRs(Sql)
  22.         Debug.Print Rst.RecordCount
  23.         
  24.         With Rst
  25.             .MoveFirst
  26.             For ii = 0 To .RecordCount - 1
  27.                  For jj = 0 To .Fields.Count - 1
  28.                      Debug.Print .Fields(jj),
  29.                  Next jj
  30.                  .MoveNext
  31.                  Debug.Print
  32.             Next ii
  33.         End With
  34.         
  35.    
  36. End Sub
复制代码





TA的精华主题

TA的得分主题

发表于 2024-5-5 10:02 | 显示全部楼层
='FALSE'
或者
='TRUE'

TA的精华主题

TA的得分主题

发表于 2024-5-5 10:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-5 14:22 | 显示全部楼层


image.png

Sql = "Select TorF From[Sheet5$] Where TorF = 'FALSE'"
结果Recortset为0

image.png


Sql = "Select AfterMoveFile, MoveFile,TorF From[Sheet5$X1:Z30] Where TorF = 'F'"



Recordset的结果为3


image.png

TA的精华主题

TA的得分主题

发表于 2024-5-5 15:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你这两个图片的结果最后不都是 Sql = "Select TorF From[Sheet5$] Where TorF = 'FALSE'"
为啥一个为0一个为3 ???

上个附件吧

TA的精华主题

TA的得分主题

发表于 2024-5-5 15:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Access数据库里的TRUE是-1,FALSE是0

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-5 19:26 | 显示全部楼层
leeson7502 发表于 2024-5-5 15:33
Access数据库里的TRUE是-1,FALSE是0

谢谢,回复解答.
image.png


0和-1条是通过.
Sql = "Select * From[Sheet1$] Where DD = -1"
  1. Function SqlRetuRs(Str)
  2.    Dim Cn As ADODB.Connection
  3.        Set Cn = New ADODB.Connection
  4.    Dim Rs As ADODB.Recordset
  5.        Set Rs = New ADODB.Recordset
  6.         Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ThisWorkbook.FullName
  7.         
  8.         Rs.Open Str, Cn, adOpenKeyset, adLockOptimistic
  9.        Set SqlRetuRs = Rs
  10. End Function


  11. Private Sub SqlTrueFalse()
  12.     'Dim Cn As ADODB.Connection
  13.     Dim Rst As ADODB.Recordset
  14.     Dim Sql As String

  15.          Sql = "Select * From[Sheet1$] Where A4 = 0"
  16.          Sql = "Select * From[Sheet1$] Where A4 = 'FALSE'"
  17.          Sql = "Select * From[Sheet1$]" ' Where A5 = 'F'"
  18.          Sql = "Select * From[Sheet1$] Where EE = 'T'"
  19.          Sql = "Select * From[Sheet1$] Where DD = 'FALSE'"
  20.          Sql = "Select * From[Sheet1$] Where DD = -1"
  21.         Set Rst = SqlRetuRs(Sql)
  22.         Debug.Print Rst.RecordCount
  23.         Stop
  24.    
  25.         With Rst
  26.             .MoveFirst
  27.             For ii = 0 To .RecordCount - 1
  28.                  For jj = 0 To .Fields.Count - 1
  29.                      Debug.Print .Fields(jj),
  30.                  Next jj
  31.                  .MoveNext
  32.                  Debug.Print
  33.             Next ii
  34.         End With
  35.         
  36.    
  37. End Sub
复制代码

Book2.rar

14.25 KB, 下载次数: 1

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-30 11:38 , Processed in 0.039548 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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