【发布时间】:2021-09-30 03:32:16
【问题描述】:
所以我有以下查询(仅相关部分):
Private Sub Search_Button_Click()
DoCmd.SetParameter "[FromForm_Bldg]", Nz([Forms]![MAIN MENU]!FromForm_Bldg.Value, "")
DoCmd.SetParameter "[FromForm_Associate]", Nz([Forms]![MAIN MENU]!FromForm_Associate.Value, "")
DoCmd.SetParameter "[FromForm_StartDate]", "'" & [Forms]![MAIN MENU]!FromForm_StartDate & "'"
DoCmd.SetParameter "[FromForm_EndDate]", "'" & [Forms]![MAIN MENU]!FromForm_EndDate & "'"
DoCmd.OpenReport "ALL MOVES", acViewReport, , , , "[FromForm_Bldg]=" & Param1 & "|" & "D2=" & Param2
结束子
还有这个 Access SQL 查询:
PARAMETERS
[FromForm_Bldg] Text ( 255 ),
[FromForm_Associate] Text ( 255 ),
[FromForm_StartDate] DateTime,
[FromForm_EndDate] DateTime;
SELECT
Max(QUERY_BY_TOTAL.ACT_DATE) AS ACT_DATE,
Max(QUERY_BY_TOTAL.BLDG) AS BLDG,
QUERY_BY_TOTAL.ASSOCIATE AS ASSOCIATE,
FROM
QUERY_BY_TOTAL
WHERE
(((QUERY_BY_TOTAL.BLDG)=[FromForm_Bldg])
AND ((QUERY_BY_TOTAL.ACT_DATE)>=[FromForm_StartDate] And (QUERY_BY_TOTAL.ACT_DATE) <=[FromForm_EndDate])
AND ((QUERY_BY_TOTAL.ASSOCIATE)=[FromForm_Associate])) OR (((QUERY_BY_TOTAL.ACT_DATE)>=[FromForm_StartDate] And (QUERY_BY_TOTAL.ACT_DATE)<=[FromForm_EndDate])
AND ((QUERY_BY_TOTAL.ASSOCIATE)=[FromForm_Associate])
AND (([FromForm_Bldg]) Is Null)) OR (((QUERY_BY_TOTAL.BLDG)=[FromForm_Bldg])
AND ((QUERY_BY_TOTAL.ACT_DATE)>=[FromForm_StartDate] And (QUERY_BY_TOTAL.ACT_DATE)<=[FromForm_EndDate])
AND (([FromForm_Associate]) Is Null)) OR (((QUERY_BY_TOTAL.ACT_DATE)>=[FromForm_StartDate] And (QUERY_BY_TOTAL.ACT_DATE)<=[FromForm_EndDate])
AND (([FromForm_Bldg]) Is Null)
AND (([FromForm_Associate]) Is Null))
GROUP BY
QUERY_BY_TOTAL.ASSOCIATE
我尝试使用表单中的参数填写的报告不会填充任何数据,我 99% 确定问题出在日期上,因为 vba 的前 2 个参数没有问题但在第一个数据参数处出错。我已经玩了一个星期的日期和格式,感觉很失败。
也就是说,我确实有一个 VBA 宏,它使用参数获取此查询数据,并将其全部放入电子邮件的正文中,完美运行。作为参考,这里是电子邮件宏:
'CREATE TABLE HEADER
Dim xMailBody As String
xMailBody = "<TABLE Border=""1"", Cellspacing=""0""><TR>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">BLDG </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">ASSOCIATE </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">PICKING </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">FLOOR MOVES </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">LOADOUT </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">PUTAWAY </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">STAGING </p></Font></TD>" & _
"<TD Bgcolor=""#0642a1"", Align=""Center""><Font Color=#FCDFFF><b><p style=""font-size:16px"">TOTAL </p></Font></TD>" & _
"</TR>"
'SELECT TABLE DATA
Dim MyDb As DAO.Database
Dim Myqdf As DAO.QueryDef
Dim rs As DAO.Recordset
Dim MyQueryName As String
MyQueryName = "DATA_BY_TOTAL"
Set MyDb = CurrentDb()
Set Myqdf = MyDb.QueryDefs(MyQueryName)
'SET PARAMETER VALUES
Myqdf.Parameters("[FromForm_Bldg]") = Nz([Forms]![MAIN MENU]!FromForm_Bldg.Value, "")
Myqdf.Parameters("[FromForm_Associate]") = Nz([Forms]![MAIN MENU]!FromForm_Associate.Value, "")
Myqdf.Parameters("[FromForm_StartDate]") = [Forms]![MAIN MENU]!FromForm_StartDate
Myqdf.Parameters("[FromForm_EndDate]") = [Forms]![MAIN MENU]!FromForm_EndDate
Set rs = Myqdf.OpenRecordset()
rs.MoveFirst
Do While Not rs.EOF
'LOOP THROUGH COLUMNS TO CREATE TABLE
xMailBody = xMailBody & "<TR>" & _
"<TD><center>" & rs.Fields![ACT_DATE].Value & "</TD>" & _
"<TD><center>" & rs.Fields![ASSOCIATE].Value & "</TD>" & _
"<TD><center>" & rs.Fields![PK].Value & "</TD>" & _
"<TD><center>" & rs.Fields![FM].Value & "</TD>" & _
"<TD><center>" & rs.Fields![LO].Value & "</TD>" & _
"<TD><center>" & rs.Fields![AW].Value & "</TD>" & _
"<TD><center>" & rs.Fields![IS].Value & "</TD>" & _
"<TD><center>" & rs.Fields![TOTAL].Value & "</TD>" & _
"</TR>"
'END LOOP
rs.MoveNext
Loop
我这辈子都无法获得具有相同参数的相同查询数据来填写该当报告。我已经确认源/查询数据的日期格式与我表单上的日期输入字段相同,所以我不知道为什么它不起作用。
帮助!请帮忙!
【问题讨论】:
-
不幸的是,这似乎没有什么不同。必须尝试过 100 种不同的引号、撇号、# 符号等组合,其中任何一种都没有骰子。
标签: sql date ms-access parameters