我有一个非常小的Access数据库,我想要一个按钮,打开一个报告(" Mitarbeiterhonorare"),在组合字段中选择一个值" KF-Referentenname&#34 ;.不幸的是,我的条件似乎不起作用(必须有一些格式错误,因为它只是打开一个空的报告)。任何人都可以帮我解决语法吗?
非常感谢!
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;
答案 0 :(得分:2)
这甚至不应该编译*,双引号是错误的。
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
?
它强制执行变量声明并在编译时报告未声明或拼写错误的变量/常量。 要在新模块中自动执行此操作,请在VBA编辑器中设置Require Variable Declaration选项 这对于VBA开发来说确实是必须的。