以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据筛选与复制问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=164905)

--  作者:老鼠
--  发布时间:2021/5/8 12:21:00
--  [求助]数据筛选与复制问题
以下是项目文件,请各位老师指点。
希望达到要求:1、当打开【查询表】时,查询数据表数据清空,然后在查询窗口中有一查询确定按钮,当前方【日期框】中没有日期时,提示:“请录入日期再操作”;如果有时期,那就从【日报表】中的数据中筛选出相同日期的数据行填充至【查询表】中。
                  2、当打开【最新表】时,首先也是清空【最新表】的数据行,然后最新表的数据也是从【日报表】中来;但条件却是固定的:就是最晚那天的数据。但这个有个必要条件就是所有工作单位名称,当然工作单位名称不能重复。也就是不重复工作单位名称的最晚的日期的数据行。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新冠疫苗核对系统.table



--  作者:有点蓝
--  发布时间:2021/5/8 13:54:00
--  
1、清空数据参考:http://www.foxtable.com/webhelp/topics/0394.htmhttp://www.foxtable.com/webhelp/topics/0419.htm
判断日期是否有输入:if e.form.controls("某日期框").value = nothing then msgbox("没有输入")

2、使用sql查询,然后填充:http://www.foxtable.com/webhelp/topics/2137.htm

查询sql:select * from {日报表} as a inner join (select 工作单位名称,max(接收日期) as 接收日期 from {日报表} group by 工作单位名称) as b on a.工作单位名称=b.工作单位名称 where a.接收日期 = b.接收日期
[此贴子已经被作者于2021/5/9 21:43:38编辑过]

--  作者:老鼠
--  发布时间:2021/5/9 10:09:00
--  

首先感谢老师的指点,可是这个条件判断这里我不会使用;还请老师帮助指点。

以下是我写的代码请指点:

If e.form.controls("DateTimePicker1").value = Nothing Then
    msgbox("请录入查询日期后再查询!")
Else
    Dim f As New Filler
    f.SourceTable = DataTables("日报表")     \'指定数据来源表
    f.SourceCols = "工作单位名称,应接种人数,已接种人数_第一针,已接种人数_第二针,已接种人数_第三针,未接种人数,不能接种人数,备注,接收日期"     \'指定数据来源列
    f.DataTable = DataTables("查询表")      \'指定数据接收表
    f.DataCols = "工作单位名称,应接种人数,已接种人数_第一针,已接种人数_第二针,已接种人数_第三针,未接种人数,不能接种人数,备注,接收日期"       \'指定数据接收列
    f.ExcludeExistValue = True            \'排除接收表中已经存在的内容
    f.ExcludeNullValue = True         \'排除空白值
    f.Filter =          \'填充条件判断
    f.Distinct = True         \'排除重复内容
    f.Append = True       \'在接收数据表中增加新行用于接收数据
    f.Fill      \'填充数据
End If


--  作者:有点蓝
--  发布时间:2021/5/9 21:43:00
--  
 f.Filter =  "接收日期=#" & e.form.controls("某日期框").value & "#"