【发布时间】:2018-08-21 18:03:48
【问题描述】:
我已经为我的问题寻找解决方案已经有一段时间了,但似乎找不到有效的答案。我有一张表格,其中包含根据日期和案件类型涌入不同律师的案件。请记住,我是 VBA 和 SQL 方面的新手
我想做的事:
我需要根据日期将大量案件分类为每位律师收到的案件数量,在这种情况下,这在上个月重复出现。本质上,我需要能够每个月按下一个按钮,然后自动检索上个月的数据并将其放入 Excel 工作簿中。这一切其实都成功了,除了下面这个问题
问题:
每当我运行宏时,它都不会检索到全部金额。例如,2 月份我知道有 159 个新病例,但公式只找到 155 个。现在我可以得到正确的结果,方法是提示 inputbox 为 startdate 和 enddate 并输入格式 DD/MM/YY HH/MM/SS - 但我想删除inputbox 部分,所以我不必输入任何内容。该代码应自动进入最后一个月。对于 2 月,它看起来像从 01/02/18 00:00:01 到 28/02/18 23:59:59
我认为问题是因为我当前的公式没有一直延伸,因此不包括小时、分钟和秒 - 或类似的东西。
我也很有信心可以使用dateadd 函数修复它,我只是不知道如何。如何指定 Startdate 和 Enddate 以包括整个月,直到第一秒和最后一秒?
可能是一个非常简单的解决方法,但它超出了我的能力
代码:
Dim Startdate As Date
Dim Enddate As Date
Startdate = DateSerial(Year(Now), Month(Now) - 1, 1)
Enddate = DateSerial(Year(Now), Month(Now), 0)
Debug.Print Startdate, Enddate
Set rs = conn.Execute("Select [Jurist], [OpretDato], [Tilgang] From [dbo].[TilgangOgAfgangAfSagerTilgangIPeriodenView]" & _
"Where [OpretDato] Between '" & Startdate & "' And '" & Enddate & "' and (Jurist not in ('BF','MLT','NL') or Jurist is null)" & _
"Order by [Jurist] ASC ;")
【问题讨论】:
-
@Ashleedawg。感谢您的评论和时间,但 Peh 的回答解决了这个问题。有关信息,调试显示 01/02/18 和 28/02/18 - 至于丢失记录上的日期,我不知道。需要很长时间才能看完。但它已经解决了 - 再次感谢您的关注:)
-
@Boxx as ashleedawg 指出我的答案不正确,因为我只是查看了您的标准而不是使用我的大脑。请考虑选择他的答案作为解决方案,以便我删除我的。
-
@Pᴇʜ - 谢谢,我的 SQL OCD 在这里发疯了,因为我曾经因为类似的问题花了 天 对丢失数据和重叠数据进行故障排除。 :-)
-
@ashleedawg 当然你是完全正确的。我只是没有考虑,因为标准已经在他的问题中了。如果错误的东西已经写在纸上,那么这总是一个问题,很容易相信你读到的东西。
-
@ashleedawg - 你是绝对正确的 - 我太快了! :) 这就是您尝试评论并对所有事情做出反应而得到的结果,同时尝试修复您的解决方案我猜。对不起!另一方面 - 现在一切正常! - 您的修复工作非常出色,我得到了正确的数字,同时还考虑了您提出的问题。你是救生员! :) 谢谢!
标签: sql sql-server vba excel