Foxtable(狐表)用户栏目专家坐堂 → [求助]利用Select方法查找指定条件的行不起作用


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

主题:[求助]利用Select方法查找指定条件的行不起作用

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
[求助]利用Select方法查找指定条件的行不起作用  发帖心情 Post By:2023/7/3 21:23:00 [只看该作者]

老师好,下面这段代码不起作用,请看一下,谢谢指教

Dim r As Row = Tables("日常采购统计表").Current   '----定义当前行
Dim dt As Date = r("录入日期")
Dim m As Integer = dt.Month      '----获取指定日期的月份
Dim y As Integer = dt.Year       '----获取指定日期的年份

For Each dr1 As DataRow In DataTables("日常采购统计表").dataRows
     Dim dt1 As Date = dr1("录入日期")
     Dim m1 As Integer = dt1.Month      
     Dim y1 As Integer = dt1.Year       

     Dim drs As List(Of DataRow) = DataTables("日常采购统计表").Select(""& y1 &" = "& y &" And "& m1 &" = "& m &"")
     For Each dr As DataRow In drs
           '-----代码
     Next
Next

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/3 21:38:00 [只看该作者]

没看懂这个代码想干嘛。截图表结构和数据,然后使用文字说明一下想做什么功能

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2023/7/4 0:09:00 [只看该作者]

有点蓝老师好:
      上面这段代码的目的是统计当月累计支出的经费数额,代码写在下图窗口中“本月经费支出累计”按钮下,现在需要把当月录入的行用Select方法查找出来,然后再用Sum方法对查找出来的行的经费支出列进行累计(累计的代码还没写)。现在的问题是,上段代码中Select方法不能用,查找的是全部行。说明一下,录入日期是新增行时自动填充当日日期,窗口中没有日期控件。请费心指教,谢谢!


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

[此贴子已经被作者于2023/7/4 0:13:53编辑过]

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/7/4 8:17:00 [只看该作者]

直接用Compute不行嘛,为什么要先Select出来呢?
SQLCompute(Expression, Filter)
Expression:  要计算的表达式,使用聚合函数进行统计。
Filter:    可选参数,用于设置计算条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异

[此贴子已经被作者于2023/7/4 8:18:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/4 8:32:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/2720.htm,结合Compute使用http://www.foxtable.com/webhelp/topics/0548.htm

Dim y As Integer = Date.Today.Year
Dim 
m As Integer = Date.Today.Month
Dim 
dt1 As New Date(ym1)
Dim 
dt2 As New Date(ymDate.DaysInMonth(ym)) '获取本月的最后一天
Dim 
Filter As String
Filter
 = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Dim Sum As Double
Sum = Tables("订单").Compute("Sum(经费支出)"Filter )
Output.Show(Sum)

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


加好友 发短信
等级:幼狐 帖子:174 积分:1665 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2023/7/4 9:04:00 [只看该作者]

弄好了。感谢狐友cd_tdh,给出了思路,更谢谢有点蓝老师,直接给一段完整的代码。对于边学习边摸索的人,你们的帮助是最大的支持!

 回到顶部