【发布时间】:2014-08-01 23:32:01
【问题描述】:
我的 Access 数据库中有以下 SQL 查询,连接到 SQL Server 2008:
SELECT COUNT(*) as mCount
FROM [Projects]
WHERE [DateProjectSubmitted]>'2014';
这很好用,完全符合我的需要。
但是,我似乎无法在我拥有的函数中调整 Access 中的工作查询(所有错误处理已删除):
Public Function getNumberOfYearToDateProjects() As Integer
Dim rsMyRecordSet As ADODB.Recordset
Dim sSql As String
Set rsMyRecordSet = New ADODB.Recordset
sSql = "SELECT COUNT(*) as mCount FROM [Projects] WHERE [DateProjectSubmitted]>#" & Format(Date, "YYYY") & "#"
rsMyRecordSet.Open sSql, CurrentProject.Connection
getNumberOfYearToDateProjects = rsMyRecordSet.Fields("mCount")
End Function
我知道 Access 在日期表达式中需要 # 符号,但我似乎无法让它将 2014 识别为日期以进行比较。
如果我直接复制 SQL,我会遇到数据不匹配的问题。
我可以执行以下操作,但这看起来很难看
sSql = "SELECT COUNT(*) as mCount FROM [Projects] WHERE [DateProjectSubmitted]>#" & DateSerial(Year(Date), 1, 1) & "#"
我可以修改 SQL 查询还是需要使用 DateSerial 之类的东西来创建一个假的 2014-01-01 日期进行比较?
【问题讨论】:
-
这个问题和Sql Sever有什么关系?
标签: sql sql-server-2008 vba ms-access datetime