Box*_*oxx 6 sql sql-server excel vba excel-vba
我已经在很长一段时间内搜索了我的问题的解决方案,但似乎无法找到有效的答案.我有一张表格,根据日期和案例类型向不同的律师提供案件.请记住,在VBA和SQL方面,我是新手
我正在做的事情:
我需要将大量的案例分类为每个律师根据日期获得的案件数量,在这种情况下,上个月会重复出现.基本上我需要能够每月按一个按钮,然后自动检索上个月的数据并将其放在Excel工作簿中.除了以下问题之外,所有这些实际上都成功了
问题:
每当我运行宏时,它都不会检索全部数量.例如,2月份我知道有159个新病例,但公式只能找到155现在我可以得到正确的结果,通过提示的inputbox一个startdate,并enddate和输入格式DD/MM/YY HH/MM/SS-但我想删除的inputbox部分,所以我不必输入任何东西.代码应该自动进入其肠道的最后一个月.对于二月它看起来像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 ;")
Run Code Online (Sandbox Code Playgroud)
您的四条记录可能缺少最后一天的记录,因为2018-02-28== 2 月 28日2018-02-28 00:00:00凌晨。
您的公式的另一个问题:想想 2019 年 1 月会发生什么...您的公式(以及此处的其他答案)将返回:
Year = 2019 Month = 0 Day = 1
Run Code Online (Sandbox Code Playgroud)
显然,这是行不通的。您不能仅仅“从月份中减去 1”来始终获得上个月的值。
另外,您不应指定 的结束时间23:59:59和 开始时间00:00:01,因为您每年会跳过超过12 分钟...以及12 月份。
EndDate = DateSerial(Year(Now), Month(Now), 1)
StartDate = DateSerial(Year(EndDate - 1), Month(EndDate - 1), 1)
Run Code Online (Sandbox Code Playgroud)
然后你的SQL标准是:
WHERE ([RecordDateTime] >= StartDate And [RecordDateTime] < EndDate)
Run Code Online (Sandbox Code Playgroud)
请注意,该=标准不包含在后半部分中。
您调整后的代码:
Set rs = conn.Execute("Select [Jurist], [OpretDato], [Tilgang] " & _
"From [dbo].[TilgangOgAfgangAfSagerTilgangIPeriodenView]" & _
"Where [OpretDato] >= '" & Startdate & "' And [OpretDato] < '" & _
Enddate & "' and (Jurist not in ('BF','MLT','NL') or Jurist is null)" & _
"Order by [Jurist] ASC ;")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |