doCmd.OpenReport where 条件语法
doCmd.OpenReport where-condition syntax
我有一个非常小的 Access 数据库,我想要一个按钮,它可以打开一个报告 ("Mitarbeiterhonorare"),该报告由组合字段 "Kf-Referentenname" 中的选定值过滤。不幸的是,我的 where-condition 似乎不起作用(必须有一些格式错误,因为它只是打开一个空报告)。谁能帮我解决那里的语法问题?
非常感谢!
Private Sub cmdOpenReport_Click()
If IsNull(Me.Kf_Referentenname) Then
Me.Kf_Referentenname.SetFocus
MsgBox "Bitte einen Mitarbeiter auswählen!", vbExclamation
Else
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:=Referent_Name = "& Me.Kf_Referentenname"
End If
End Sub
报告所基于的查询如下所示:
SELECT Sum(Honorare.Betrag) AS Gesamtbetrag_Honorare, Mitarbeiter.Referent_Name FROM Mitarbeiter INNER JOIN Honorare ON Mitarbeiter.Mitarbeiter_ID = Honorare.Mitarbeiter_ID GROUP BY Honorare.Mitarbeiter_ID, Mitarbeiter.Referent_Name;
这甚至不应该编译 *,双引号是错误的。
WhereCondition
必须是字符串:
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:="Referent_Name = " & Me.Kf_Referentenname
然后 Referent_Name
可能是一个文本字段,因此您需要在参数周围附加引号:
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:="Referent_Name = '" & Me.Kf_Referentenname & "'"
(*) 你的模块顶部有 Option Explicit
吗?
它强制变量声明并在编译时报告未声明或拼写错误 variables/constants。
要在新模块中自动启用此功能,请在 VBA 编辑器中设置 Require Variable Declaration 选项。
这确实是 VBA 开发的必备条件。
我有一个非常小的 Access 数据库,我想要一个按钮,它可以打开一个报告 ("Mitarbeiterhonorare"),该报告由组合字段 "Kf-Referentenname" 中的选定值过滤。不幸的是,我的 where-condition 似乎不起作用(必须有一些格式错误,因为它只是打开一个空报告)。谁能帮我解决那里的语法问题?
非常感谢!
Private Sub cmdOpenReport_Click()
If IsNull(Me.Kf_Referentenname) Then
Me.Kf_Referentenname.SetFocus
MsgBox "Bitte einen Mitarbeiter auswählen!", vbExclamation
Else
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:=Referent_Name = "& Me.Kf_Referentenname"
End If
End Sub
报告所基于的查询如下所示:
SELECT Sum(Honorare.Betrag) AS Gesamtbetrag_Honorare, Mitarbeiter.Referent_Name FROM Mitarbeiter INNER JOIN Honorare ON Mitarbeiter.Mitarbeiter_ID = Honorare.Mitarbeiter_ID GROUP BY Honorare.Mitarbeiter_ID, Mitarbeiter.Referent_Name;
这甚至不应该编译 *,双引号是错误的。
WhereCondition
必须是字符串:
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:="Referent_Name = " & Me.Kf_Referentenname
然后 Referent_Name
可能是一个文本字段,因此您需要在参数周围附加引号:
DoCmd.OpenReport ReportName:="Mitarbeiterhonorare", View:=acViewPreview, _
WhereCondition:="Referent_Name = '" & Me.Kf_Referentenname & "'"
(*) 你的模块顶部有 Option Explicit
吗?
它强制变量声明并在编译时报告未声明或拼写错误 variables/constants。
要在新模块中自动启用此功能,请在 VBA 编辑器中设置 Require Variable Declaration 选项。
这确实是 VBA 开发的必备条件。